Python 使用 Qt Designer 生成UI 并 绑定事件

首先使用 QtDesigner 生成 后缀 xxx.ui 的文件
执行命令

pyside2-uic untitled.ui -o appui.py

引入生成的ui文件,并调用其中的 setupUi 方法
image.png

运行文件,显示对应的UI窗口
image.png

绑定事件有多种写法
一种是类似 QT中 C++ 的写法,python 需要引入 QtCore

ui_obj.pushButton.clicked.connect(on_clicked1)
QtCore.QObject.connect(ui_obj.pushButton, QtCore.SIGNAL("clicked()"), window, QtCore.SLOT('on_click()'))

另外一种有点类似 JS 中绑定事件的洗发

ui_obj.pushButton.clicked.connect(on_clicked1)

完整截图
image.png

运行效果
image.png

image.png

下面是完整代码

# This Python file uses the following encoding: utf-8
import sys
from PySide2.QtWidgets import QApplication, QMainWindow
from PySide2 import QtCore, QtGui
import appui


class Main(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

    def on_clicked2(self):
        print("Button click2")
        print(self.__class__)


def on_clicked1():
    print("Button click!")


if __name__ == "__main__":
    app = QApplication([])
    window = Main()
    ui_obj = appui.Ui_MainWindow()
    ui_obj.setupUi(window)

    # 第一种
    # QtCore.QObject.connect(ui_obj.pushButton, QtCore.SIGNAL("clicked()"), window, QtCore.SLOT('on_clicked2()'))
    # 第二种
    ui_obj.pushButton.clicked.connect(on_clicked1)

    window.show()
    sys.exit(app.exec_())

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容