บทช่วยสอนนี้มุ่งเน้นไปที่การสอนการใช้กรอบงาน QT โดยใช้ Python เป็นภาษาโปรแกรมสำหรับสิ่งนี้เราสามารถใช้ได้ทั้ง PySide และ PyQt แต่ในบทช่วยสอนนี้เราจะใช้ PySide เนื่องจากผู้เขียนบทช่วยสอนนี้ชอบใบอนุญาต LGPL PySide มากกว่า มากกว่า GPL หรือ PyQt Commercial
อันดับแรก ... Python คืออะไร?
อ้างอิงจาก Wikipedia:
"Python เป็นภาษาการเขียนโปรแกรมที่มีการตีความระดับสูงมากซึ่งปรัชญาเน้นไวยากรณ์ที่สะอาดมากและสนับสนุนโค้ดที่อ่านได้"
Python เป็นภาษาการเขียนโปรแกรมแบบหลายแถบดังนั้นจึงสนับสนุนกระบวนทัศน์การเขียนโปรแกรม Python ที่แตกต่างกันเช่นรองรับ: Object Oriented Programming (OOP), Imperative Programming (Structured) และในระดับที่น้อยกว่าการเขียนโปรแกรมเชิงฟังก์ชัน
ว่ามีเพียง?
ไม่มันยังเป็นภาษาพิมพ์แบบไดนามิกซึ่งหมายความว่า python ช่วยให้เราสามารถกำหนดค่าประเภทต่างๆให้กับตัวแปรเดียวกันในระหว่างการทำงานของโปรแกรมบางคนมองว่าเป็นข้อได้เปรียบคนอื่นเป็นข้อเสียดูเอาเอง .
นอกเหนือจากสิ่งที่ได้กล่าวไปแล้ว Python ยังช่วยให้เรา (เช่นเดียวกับคนอื่น ๆ อีกมากมาย) การเขียนโปรแกรมทั้งในสภาพแวดล้อมเว็บและในเว็บเดสก์ท็อปมันยังเป็นข้ามแพลตฟอร์มปัจจุบันรองรับ Gnu / Linux, Windows, Mac osx, Android (หากคุณต้องการกล่าวถึงพวกเขาสำหรับการปรับเปลี่ยนของคุณ)
QT คืออะไร?
QT เป็นเฟรมเวิร์กแบบหลายแพลตฟอร์มที่พัฒนาโดย Nokia เพื่อขายต่อให้กับ Digia ซึ่งใช้สำหรับการพัฒนาแอพพลิเคชั่นมันถูกเขียนด้วยภาษา C ++ แต่สามารถใช้ในภาษาอื่นผ่าน Bindings (ในกรณีของเราคือ PySide หรือ PyQt)
ความแตกต่างระหว่าง PySide และ PyQt
ส่วนใหญ่
- ใบอนุญาต PySide ได้รับอนุญาตภายใต้เงื่อนไขของ LGPL และ PyQT อยู่ภายใต้เงื่อนไขของ GPL หรือภายใต้ใบอนุญาตทางการค้าดังนั้นเราจะต้องจ่ายเงินในกรณีที่สร้างแอปพลิเคชันแบบปิด
- PySide สร้างโดย Nokia และ PyQt โดย RiverBank
- PySide ช่วยให้เราประหยัดปัญหาในการใช้ STR ทุกครั้งที่เราใช้ QString ของแต่ละออบเจ็กต์ QT
เราสามารถดูรายละเอียดการเปลี่ยนแปลงทั้งหมด ที่นี่.
เตรียม:
เราติดตั้ง Qt:
หากเรามี distro กับ Kde เราควรมีสิ่งที่ต้องการอยู่แล้วถ้าไม่มี:
sudo apt-get ติดตั้ง qt4-dev-tools
เราติดตั้ง PySide:
sudo apt-get install pyside pyside-tools
แอปพลิเคชัน Python + QT ตัวแรกของเรา
เราไปที่โปรแกรมแก้ไขข้อความที่เราชื่นชอบขอแนะนำให้คุณติดตั้ง sublime-text2 แต่คุณสามารถใช้รหัสที่คุณต้องการได้และเราพิมพ์รหัสต่อไปนี้และบันทึกด้วยชื่อที่เราต้องการลงท้ายด้วยนามสกุล ".py" ฉันจะบันทึกเป็น app1.py:
เราเรียกใช้จากคอนโซลดังนี้:
python app1.py
หน้าต่างนี้จะปรากฏขึ้น
อะไรเท่านั้นเพราะถ้าก่อนหน้านี้คุณมีคอนโซลคุณจะบ่นอะไร? คุณคาดหวังอะไร Erp? มาหามนุษย์เพื่อเริ่มต้นบางสิ่งบางอย่าง
ตอนนี้ขออธิบายรหัส:
from PySide.QtGui import *
from sys import exit, argv
ที่นี่เรานำเข้าโมดูลที่จำเป็นสำหรับการดำเนินการ PySide
app = QApplication(argv)
เราสร้างอินสแตนซ์ Qapplication ด้วยแอพชื่อ
window = Qwidget()
เราสร้างอินสแตนซ์ QWidget ()
window.setWindowTitle("Primera App PySide")
เราดำเนินการเมธอด setWindowTitle ซึ่งได้รับ String เป็นพารามิเตอร์เพื่อ "ตั้งค่า" หัวเรื่องของ Qwidget ของเรา
window.show()
เราแสดงหน้าต่างของเรา
exit(app.exec_())
ในที่สุดเราก็ดำเนินการวงจรที่ไม่มีที่สิ้นสุดของการดำเนินการ QApplication ()
กราเซีย
ขอบคุณสำหรับผู้ที่ติดตามเรามา ณ ที่นี้และเป็นประโยชน์ สำหรับบทช่วยสอนถัดไปฉันจะอธิบายวิธีการออกแบบหน้าต่างของเราด้วย QT Designer และนำเข้าสู่โครงการของเรา
นอกจากนี้ ฉันยังเพิ่มลิงก์ไปยังฟอรัมด้วย desde linux โดยที่ฉันมีธีมเล็กๆ พร้อมไลบรารี่บทช่วยสอนและคำแนะนำเกี่ยวกับ Python ขนาดเล็ก ซึ่งมีคำศัพท์ที่แตกต่างกัน ได้แก่:
บทเรียน Python พื้นฐาน
wxPython
PyQt และ PySide
Django
web2py
การเขียนโปรแกรมทางวิทยาศาสตร์ใน python
และอื่น ๆ อีกมากมาย.
ฉันหวังว่าพวกเขาจะรับใช้คุณฉันบอกลาเพราะมีความสุขเสมอที่ได้เป็นส่วนหนึ่งของชุมชนที่ยอดเยี่ยมนี้
ขอบคุณสำหรับโพสต์!
2 อย่าง:
1. Qt ไม่ได้พัฒนาโดย Nokia แต่โดย Trolltech ซึ่ง Nokia ซื้อต่อมา ตอนหลังขาย Qt ให้ Digia
2. รูปภาพในตัวอย่างแอปพลิเคชันแรกไม่ตรงกับรหัส
ขอบคุณสำหรับบทช่วยสอนฉันจะติดตาม :)
คุณพูดถูกจริงๆที่ฉันพลาด และสิ่งที่สองที่คุณพูดถูกคือฉันเปลี่ยนมันเพื่อให้ง่ายขึ้นและไม่ใช้คลาสและฉันพลาดการแก้ไขข้อผิดพลาดเริ่มต้น ฉันได้ส่งการแก้ไขให้บรรณาธิการบางคนอนุมัติแล้ว
ฉันไม่สามารถแก้ไขได้ฉันปล่อยให้บรรณาธิการบางส่วน
อาศิรพจน์
ส่งอีเมลถึงผู้แก้ไขพร้อมคำแนะนำที่แก้ไข คุณสามารถส่งไปที่อีเมลของ @nano ซึ่งเป็นหนึ่งในบรรณาธิการ
mailto: nano.world.contact@gmail.com
โปรดอย่าออกจากการสอนเช่นนี้
ขอแสดงความนับถือ
สิ่งหนึ่งที่ทำให้ฉันประทับใจ: ทำไมคุณถึงใช้ "from import *" ในโค้ดของคุณ
ทักทาย!
เป็นวิธีการนำเข้าที่ถูกต้องเมื่อนำเข้าเช่นนี้คุณจะต้องแจ้งให้ทราบว่าคุณต้องการนำเข้าคลาสใดโดยเฉพาะและคุณจะไม่เรียกโมดูลทั้งหมด
อาศิรพจน์
ฉันรู้สึกสับสนแบบนั้น นอกจากนี้ไม่แนะนำใน PEP8:
"ควรหลีกเลี่ยงการนำเข้าสัญลักษณ์แทน (จากการนำเข้าโมดูล *) เนื่องจากทำให้ไม่ชัดเจนว่าชื่อใดอยู่ในเนมสเปซทำให้สับสนทั้งผู้อ่านและเครื่องมืออัตโนมัติจำนวนมาก ... "
ฉันได้รับคำแนะนำจากรหัสมืออาชีพเป็นส่วนใหญ่เช่น Ninja-Ide คุณสามารถดูรหัสได้ที่นี่: https://github.com/ninja-ide/ninja-ide/blob/master/ninja_ide/core/ipc.pyมันทำใน PyQt เช่นกัน แต่ในรูปแบบใด ๆ ไม่มีสิ่งใดที่บังคับให้คุณใช้รูปแบบใดรูปแบบหนึ่ง
คุณสามารถดูการสนทนาบน StackOverflow ได้ที่นี่:
http://stackoverflow.com/questions/710551/import-module-or-from-module-import
พวกเขากล่าวถึงข้อดีข้อเสียของแต่ละสไตล์
โอเคขอโทษที่ฉันไม่เข้าใจคุณฉันรู้ว่าฉันทำไปเพียงเพราะฉันจะไม่ให้คำอธิบายของแต่ละองค์ประกอบ QApplication, QWidget แล้วสรุป แต่คุณพูดถูกจริงๆ
ขอโทษที่เข้าใจผิด
ไม่คุณไม่เข้าใจหรือคุณไม่ได้ใส่ใจ ... ฉันหมายถึงใช้«จากการนำเข้าโมดูล * »นั่นคือฉันหมายถึง«ดอกจัน» ... ในโพสต์ StackOverflow ที่พวกเขากำลังพูดถึงอย่างอื่น แต่พวกเขายังคงเน้นย้ำ:
"ยอมรับวิธีใดก็ได้ แต่อย่าใช้จากการนำเข้าโมดูล *"
ตอนนี้เข้าใจแล้วหรือยัง?
ภาษาเยอรมันพูดถูก อะไรคือการใช้การนำเข้าจากโมดูลหากคุณนำเข้าเนื้อหาทั้งหมดด้วยเครื่องหมายดอกจันสำหรับโมดูลการนำเข้านั้น Slds เป็นโพสต์ที่ดี
อืมตอนนี้ฉันเข้าใจแล้ว…อย่างไรก็ตามอย่าใช้เวลานานเกินไปฉันยังเป็นมือใหม่ใน Python หากคุณเยี่ยมชมบล็อกของฉันคุณจะเห็นว่าฉันโพสต์คล้ายกับของคุณ แต่ใช้ Gtk + 3 โดยใช้ PyGObject
ทักทายและขอบคุณ!
ที่นี่ฉันออกจาก Pep8 เป็นภาษาสเปนแนะนำให้ใช้ im
ไม่ควรอย่างยิ่งที่จะใช้การนำเข้าแบบสัมพัทธ์เพื่อนำเข้ารหัสจากแพ็คเกจ ใช้เส้นทางสัมบูรณ์ของแพ็กเกจสำหรับการนำเข้าทั้งหมดเสมอ แม้ว่าตอนนี้ PEP 328 [7] จะถูกนำมาใช้อย่างสมบูรณ์ใน Python 2.5 แต่การใช้การนำเข้าแบบสัมพัทธ์ก็ไม่ได้รับการสนับสนุน การนำเข้าแบบสัมบูรณ์สามารถพกพาได้มากกว่าและมักจะอ่านได้มากกว่า
เมื่อคุณนำเข้าคลาสจากโมดูลมักจะทำได้ถูกต้อง
จาก myclass นำเข้า MyClass
จาก foo.bar.yourclass นำเข้า YourClass
ความนับถือ
อ่านนี่: http://stackoverflow.com/questions/3615125/should-wildcard-import-be-avoided
Alex Martelli (ผู้พัฒนา core py) แนะนำสิ่งนี้:
from PyQt4 import QtCore, QtGui
ฉันต้องการมากกว่านี้สำหรับเมื่อภาค 2!?
ทักทาย🙂
แบบฝึกหัดที่ดีมากและการเขียนโปรแกรมอาจสะดวกสบายกว่าด้วย
นี่คือตัวอย่างของอินเทอร์เฟซตั้งแต่เริ่มต้น (โดยไม่ต้องใช้ QtDesigner)
https://github.com/xr09/metrocontador
แอพ dhunter นั้นยอดเยี่ยมมากที่นี่เราไม่รู้ด้วยซ้ำว่าพวกเขาคิดค่าไฟฟ้าเท่าไรฮ่า ๆ ทักทาย
ขอบคุณเป็นหนึ่งในแอพที่สร้างขึ้นเพื่อการใช้งานส่วนตัวและให้บริการผู้อื่น ที่นี่ในคิวบาใบเสร็จจะถูกแยกย่อยตามอัตราการคัดลอกอัลกอริทึมทำได้ง่าย
ฉันจะตระหนักถึงหลักสูตรนี้เป็นอย่างดี ฉันสนใจแอปพลิเคชันข้ามแพลตฟอร์มมานานแล้วและฉันคิดว่าการผสมผสาน Python + QT / Pyside เป็นตัวเลือกที่ยอดเยี่ยม ทักทายและแสดงความยินดีสำหรับความคิดริเริ่ม
ฉันทำตามขั้นตอนทั้งหมดตามที่คุณพูด แต่เมื่อฉันเรียกใช้แอปพลิเคชัน app1.py ในเทอร์มินัลมันจะบอกฉันว่า Traceback (โทรล่าสุดล่าสุด):
ไฟล์ "app1.py" บรรทัดที่ 1 ใน
จากการนำเข้า PySide.QtGui *
ImportError: ไม่มีโมดูลชื่อ PySide.QtGui นี่คืออะไร?.
นั่นเป็นเพราะคุณใช้ python เวอร์ชันเป็นล่ามเริ่มต้น แต่คุณไม่ได้ติดตั้ง pyside สำหรับเวอร์ชันนั้น
ลองเพิ่มที่จุดเริ่มต้นของไฟล์:
#! usr / bin / python3
หรืออื่น ๆ
#! usr / bin / python2
ฉันแนะนำให้คุณใช้ Eclipse กับ pydev และกำหนดค่าล่ามให้ดี
SLDs
#! / usr / bin / python3
หรืออื่น ๆ
#! / usr / bin / python2
PySide ยังไม่สามารถใช้งานร่วมกับ Python3 ได้โปรดใช้ความระมัดระวังและประการที่สองตรวจสอบการนำเข้าผ่านคอนโซล python แบบโต้ตอบดังนั้นคุณจะรู้ว่าคุณได้ติดตั้งหรือไม่นอกจากนี้ยังติดตั้ง pip ด้วย
ฉันจะตรวจสอบได้อย่างไร?
ในคอนโซลใช้ "Python" อย่างไรก็ตามฉันขอแนะนำให้คุณเข้าสู่ไลบรารีที่ฉันทิ้งไว้ด้านล่างในโพสต์และดาวน์โหลด "python for everyone" คุณต้องมีฐานเพิ่มเติม
ทักทายและโชคดี
ขอบคุณมากมันเป็นประโยชน์กับฉันมาก
ดูเป็นเพื่อน F3niX ฉันพบสิ่งนี้ดูเหมือนว่าสำหรับ python 3.3.2 บน windows (ซึ่งเป็นสิ่งที่ฉันมีจนถึงสัปดาห์หน้า) พวกเขามีไบนารี 32 บิตและ 64 บิตฉันลองใช้ตัวอย่างของคุณและใช้ได้กับ python 3.3.2 และ ฉันใช้ PyScripter ที่ติดตั้งสภาพแวดล้อมที่แตกต่างกันถ้าคุณเปิด python 3 มันจะเรียกใช้สคริปต์เป็น python 3 และถ้าคุณเปิด 2.7 มันจะเรียกใช้งานเป็น 2.7 และอื่น ๆ (เหตุผลคุณต้องติดตั้ง python เวอร์ชันนั้น ... เข้าใจ)
http://qt-project.org/wiki/PySide_Binaries_Windows
ฉันจะปล่อยคุณไว้ที่นั่นซุบซิบบางทีมันอาจจะรับใช้คนอื่น😀
ฉันได้รับข้อผิดพลาดเดียวกัน
คุณติดตั้ง PySide หรือไม่
ฉันได้ติดตั้งแล้ว
และลองใช้ PyQT4 ติดตั้งแล้วเปลี่ยนบรรทัด PySide สำหรับ PyQT4 หรือ PyQt4 และให้มันทำงาน jojo. ใช้คราส โชค.
ฉันจะทำอย่างไร?.
ขอบคุณมาก !!! กำลังรอบทที่สอง
สำหรับวันศุกร์นี้ฉันอาจจะเผยแพร่มัน (มหาวิทยาลัยมีฉันเล็กน้อย) ทักทาย
เพื่อน F3nIX ฉันกำลังรอการสอนของคุณ N ° 2, 3, 4 ... N hehehe
ฉันติดตั้งลินุกซ์ที่หรูหรามากแล้วพร้อมกับ PySide waiting และทุกอย่าง
มาดูกันว่าเมื่อไหร่เขาจะได้รับการสนับสนุนให้แสดงติวเตอร์คนใหม่😀
ขอโทษนะเพื่อนฉันมีแบบร่าง แต่งานและการเรียนไม่ได้ให้เวลาฉันสัญญาว่าจะเอาอะไรออกไปในสัปดาห์นี้
ทักทายกันใหญ่
สวัสดีครับผมสนใจที่จะเรียนภาษา Python มานานแล้ว แต่มีข้อสงสัยบางประการ สิ่งที่ฉันต้องการคือการสร้างแอปพลิเคชันเพื่อปรับปรุงกระบวนการข้อมูลเล็กน้อยของธุรกิจครอบครัวที่ฉันทำงานฉันต้องการทำบางอย่างสำหรับ windows โดยในตอนแรก windows มันจะทำงานทั้งหมดบนพีซีเครื่องเดียวแล้วจึงสามารถทำได้ เชื่อมต่อผ่านอินเทอร์เน็ตไปยังฐานข้อมูลที่คอมพิวเตอร์สองเครื่องจะเชื่อมต่อ มีความหลากหลายมากในแง่ของ GUIing แอปพลิเคชันและนั่นทำให้ฉันเวียนหัว คุณแนะนำอะไรเพื่อให้ดูทันสมัยและน่าสนใจ? ฉันจะทำกราฟิกเชิงสถิติและพิมพ์รายงานด้วยฉันจะใช้อะไรได้บ้าง ความนับถือ
สวัสดีโพสต์ของคุณดีมากฉันมีคำถามฉันสามารถขายแอพของฉันที่สร้างด้วย pyside โดยไม่มีปัญหาได้หรือไม่?
ใบอนุญาตมักจะบ้า แต่ลิขสิทธิ์ซอฟต์แวร์ฟรียังอนุญาตให้คุณขายซอฟต์แวร์สิ่งที่เกิดขึ้นคือ GPL บังคับให้คุณแจกจ่ายรหัสซึ่งแตกต่างจาก LGPL ซึ่งไม่ได้บังคับให้คุณทำเช่นนั้น
ไม่ว่าในกรณีใดฉันไม่ใช่ผู้เชี่ยวชาญด้านการออกใบอนุญาต
อาศิรพจน์