TLDR 為什么人們只使用一次就創建類(例如視窗)?
一些例子:
RealPython,第一個代碼塊
PythonBasics,第一個代碼塊
PythonPyQt,第一個代碼塊
為什么他們不能將代碼放在主程式中(使用 RealPython 示例):
if __name__ == "__main__":
window = Qwidget.setWindowTitle("QHBoxLayout Example")
window.show()
# Create a QHBoxLayout instance
layout = QHBoxLayout()
# Add widgets to the layout
layout.addWidget(QPushButton("Left-Most"))
layout.addWidget(QPushButton("Center"), 1)
layout.addWidget(QPushButton("Right-Most"), 2)
# Set the layout on the application's window
window.setLayout(layout)
print(window.children())
sys.exit(app._exec())
代替
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("QHBoxLayout Example")
# Create a QHBoxLayout instance
layout = QHBoxLayout()
# Add widgets to the layout
layout.addWidget(QPushButton("Left-Most"))
layout.addWidget(QPushButton("Center"), 1)
layout.addWidget(QPushButton("Right-Most"), 2)
# Set the layout on the application's window
self.setLayout(layout)
print(self.children())
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
uj5u.com熱心網友回復:
如果你有一個大程式,真的很難將它們全部放在主程式中并處理在單個檔案中創建的所有小部件。
使用單獨的類,您可以訪問 QWidget,還可以額外繼承一些 QDesigner 創建的 GUI。
from Codebase.GUI.MyMainWindow import Ui_MainWindow
class ExampleDesignerMainWindow(QMainWindow, Ui_MainWindow)
def __init__(self)
super(ExampleDesignerMainWindow, self).__init__()
self.setupUi(self)
# do something
然后您可以隨時訪問所有內容并在“主程式”中實體化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/507351.html
上一篇:在GTK中防止執行緒的多個實體