文章采集调用(Python代码的UI文件-本篇窗口())
优采云 发布时间: 2021-08-31 02:06文章采集调用(Python代码的UI文件-本篇窗口())
本文将介绍:
文章directory
一、创建两个窗口
根据本文的最终目标——在主窗口中调用对话框窗口,我们首先使用qt设计器创建两个窗口,一个是主窗口MainWindows,另一个是对话框窗口Dialog有两个按钮。
通过qt设计器创建一个MainWindows窗口,并在其中放置一个按钮:
另存为 UI 文件并创建一个新的对话窗口:
另存为 UI 文件。
这样我们本地文件夹就有了两个可以转换成Python代码的UI文件:
二、 将 UI 文件转换为 Python 代码文件
保存两个窗口的UI文件后,我们继续使用pyuic5工具将这两个UI文件转换成Python代码文件。
打开命令行输入:
pyuic5 -x -o mainWindow.py mainWindow.ui
pyuic5 -x -o dialog.py dialog.ui
运行转换后的Python文件,是否正常:
一切正常,然后我们可以连接并调用两个窗口。
三、从主窗口调用对话窗口
在进行下一步之前,我们先在mainWindow的mainWindow中添加一个文本标签,设置文本为空,字体增加:
有了这个标签,我们可以在标签标签中反馈对话框的操作。
保存 UI 文件并使用 pyuic5 再次转换 Python 代码。
为了在主窗口代码中调用对话窗口,我们需要在mainWindow.py文件中引入对话窗口:
from GUI import dialog
然后在主窗口的主类中定义一个方法来显示对话框窗口:
def click_button(self):
Dialog = QtWidgets.QDialog()
ui = dialog.Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
Dialog.exec_()
方法定义好了,我们需要绑定按钮点击调用,在setupUi()方法中设置:
self.pushButton.clicked.connect(self.click_button)
这样就实现了按钮点击绑定对话框。
我们知道我们的对话框有两个按钮,一个是“OK”,一个是“Cancel”。在我们的 GUI 程序中,单击其中任何一个都将关闭对话框。效果看起来是一样的,但是 PyQt5 的内部机制是两个不同的事件。下面我们将通过之前设置的标签展示不同的机制。
我们修改click_button()方法如下:
def click_button(self):
Dialog = QtWidgets.QDialog()
ui = dialog.Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
# Dialog.exec_()
rsp = Dialog.exec_()
if rsp == QtWidgets.QDialog.Accepted:
self.label.setText("点击了OK")
else:
self.label.setText("点击了Cannel")
这里我们把对话框的运行赋值给一个变量,然后和QtWidgets.QDialog.Accepted比较,QtWidgets.QDialog.Accepted代表对话框接收事件,用“OK”事件表示,如果为接收时间,设置label标签为“clicked OK”,否则设置label label为“clicked Cannel”
文章版权:周老师的博客,转载需保留出处和原链接