使用qtDesigner构建好.ui文件后,将ui文件引入pyside6方法有三种:
- 继承式(使用uic工具转成py文件)
import sys from PySide6.QtWidgets import * from ui_ui_window import Ui_Form # 继承UI类 class MainWindow(QWidget, Ui_Form): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec()) - 赋值式(使用uic工具转成py文件)
import sys from PySide6.QtWidgets import * from ui_ui_window import Ui_Form class MainWindow(QWidget): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) # 将UI类进行实例化赋值 self.ui = Ui_Form() self.ui.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec()) - 转换式(直接使用ui文件)个人比较喜欢使用这种方式。
QUiLoader使用 connect() 调用将函数签名作为信号/插槽连接的字符串参数。因此,它无法处理 Python中的str或list等 Python 类型,因为这些类型在内部映射到不同的 C++ 类型。from PySide6.QtUiTools import QUiLoader from PySide6.QtWidgets import QApplication class Main: def __init__(self): # 加载UI文件 self.ui = QUiLoader().load('postman.ui') # 为组件绑定事件 self.ui.sendButtion.clicked.connect(self.handle_send_button) self.ui.clearButton.clicked.connect(self.handle_clear_button) def handle_send_button(self): print(1) def handle_clear_button(self): print(2) if __name__ == '__main__': app = QApplication([]) main = Main() main.ui.show() app.exec()
版权声明:本文为wenxingchen原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。