在 main.py
中調用 Qt Designer 生成的 windows.py
(假設它是 PySide2 版)。 只要把兩個文件放在同一目錄即可直接運行。
────────────────────
1?? windows.py(Qt Designer 生成,已轉碼)
# -*- coding: utf-8 -*-
# 由 Qt Designer 生成
from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *class Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(400, 300)self.centralwidget = QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.pushButton = QPushButton(self.centralwidget)self.pushButton.setObjectName("pushButton")self.pushButton.setText("點我")self.pushButton.setGeometry(QRect(150, 120, 93, 28))MainWindow.setCentralWidget(self.centralwidget)
────────────────────
2?? main.py(主程序)
import sys
from PySide2.QtWidgets import QApplication, QMainWindow
from windows import Ui_MainWindow # 導入界面類class MyWindow(QMainWindow, Ui_MainWindow):def __init__(self):super().__init__()self.setupUi(self) # 初始化界面self.pushButton.clicked.connect(self.say_hello)def say_hello(self):self.pushButton.setText("Hello PySide2!")if __name__ == '__main__':app = QApplication(sys.argv)w = MyWindow()w.show()sys.exit(app.exec_())
────────────────────
運行方式
python main.py
────────────────────
要點回顧
- 在
main.py
中導入:from windows import Ui_MainWindow
- 自定義窗口類繼承
QMainWindow
和Ui_MainWindow
,并調用self.setupUi(self)
完成界面綁定。 - 所有自定義邏輯(槽函數、信號連接等)寫在自定義類里即可,永遠不改動
windows.py
,方便后續再次用 Designer 修改界面。 - 這里有一個問題是如何做好版本控制,目前還沒有特別好的辦法
在mac系統中pyqt默認不現實menubar,解決方案是在menubar中取消nativemenu選項