PyQt5 - มีอะไรใหม่

PyQt5 API ไม่สามารถทำงานร่วมกับเวอร์ชันก่อนหน้าได้โดยอัตโนมัติ ดังนั้นโค้ด Python ที่เกี่ยวข้องกับโมดูล PyQt4 ควรได้รับการอัปเกรดด้วยตนเองโดยทำการเปลี่ยนแปลงที่เกี่ยวข้อง ในบทนี้มีการระบุความแตกต่างหลักระหว่าง PyQt4 และ PyQt5

PyQt5 ไม่รองรับ Python เวอร์ชันก่อนหน้า v2.6

PyQt5 ไม่รองรับเมธอด connect () ของคลาส QObject สำหรับการเชื่อมต่อระหว่างสัญญาณและสล็อต ดังนั้นจึงไม่สามารถใช้การใช้งานได้อีกต่อไป -

QObject.connect(widget, QtCore.SIGNAL(‘signalname’), slot_function)

กำหนดเฉพาะไวยากรณ์ต่อไปนี้ -

widget.signal.connect(slot_function)

คลาสที่กำหนดไว้ในโมดูล QtGui ก่อนหน้านี้ได้รับการแจกจ่ายในรูปแบบ QtGui, QtPrintSupportQtWidgets โมดูล

ในคลาส QFileDialog ใหม่ The getOpenFileNameAndFilter() วิธีการถูกแทนที่ด้วย getOpenFileName(), getOpenFileNamesAndFilter() โดย getOpenFileNames() และ getSaveFileNameAndFilter() โดย getSaveFileName(). ลายเซ็นที่เก่ากว่าของวิธีการเหล่านี้ก็มีการเปลี่ยนแปลงเช่นกัน

PyQt5 ไม่มีบทบัญญัติเพื่อกำหนดคลาสที่แบ่งย่อยจากคลาส Qt มากกว่าหนึ่งคลาส

pyuic5 ยูทิลิตี้ (เพื่อสร้างโค้ด Python จากไฟล์ XML ของนักออกแบบ) ไม่สนับสนุนแฟล็ก --pyqt3-wrapper

pyrcc5ไม่สนับสนุนแฟล็ก -py2 และ -py3 เอาต์พุตของ pyrcc5 เข้ากันได้กับ Python v2.6 ทุกเวอร์ชันเป็นต้นไป

PyQt5 จะเรียกใช้เสมอ sip.setdestroyonexit() โดยอัตโนมัติและเรียกตัวทำลาย C ++ ของอินสแตนซ์ที่รวมไว้ทั้งหมดที่เป็นเจ้าของ