PyCharm集成Qt Designer与PyUIC实战:从界面设计到代码实现
本文详细演示如何在PyCharm中配置并使用Qt Designer和PyUIC进行Python图形界面开发。内容涵盖通过Qt Designer拖拽组件设计UI、绑定信号与槽函数、利用PyUIC将.ui文件转换为.py代码,以及采用继承方式分离界面与逻辑代码的最佳实践,确保界面调整时不影响业务逻辑。
PyCharm Qt Designer PyUIC 环境配置与界面设计
在前文《PyCharm安装配置Qt Designer+PyUIC教程》中,我们已经完成了PyCharm、Qt Designer以及PyUIC的环境配置工作。
接下来,我们将基于已配置好的环境,演示如何编写一个完整的图形用户界面(GUI)程序。
该示例程序的主界面包含一个按钮和一个文本编辑框。当用户点击按钮时,文本编辑框中将显示文字“你点击了按钮”。
一、使用Qt Designer设计程序主界面
2.1 界面设计步骤
首先在PyCharm中创建一个新的项目,随后点击菜单栏的“Tools”(工具),选择“External Tools”(外部工具),最后点击“Qt Designer”以启动该工具。


在打开的Qt Designer窗口中,向Form(窗体)中拖入一个“Push Button”(按钮)和一个“Text Edit”(文本编辑框)。

2.2 指定点击事件及其响应函数
在工具栏中点击“信号-槽编辑”按钮(通常图标为带闪电的笔),将光标移动到“PushButton”按钮上,按住鼠标左键不要松开,拖动光标至Form窗体的任意空白区域后松开鼠标左键。

执行上述操作后,会弹出连接对话框。在“pushButton”一侧选中“click()”信号,在“Form”一侧点击“Edit”(编辑)按钮。

在弹出的“Slots”(槽)列表中,点击绿色的“+”按钮,为该click事件指定一个响应函数。函数名称可自定义,例如此处命名为“pushButton_click()”。
需要注意的是,此时我们仅建立了事件与响应函数的关联关系,该函数尚未实现具体逻辑,后续需在Python代码中自行补充。


至此,界面设计与事件关联配置已完成。接下来选择保存,将文件保存至项目的根目录下。

利用PyUIC将UI文件转换为Python代码
二、使用PyUIC将文件转成Python代码
关闭Qt Designer返回PyCharm,查看项目目录,可以看到刚才保存的“PyQT_Form.ui”文件。需要注意的是,该.ui文件在PyCharm中无法直接编辑查看。
为了在Python代码中使用该界面,我们需要将此.ui文件转换为.py代码文件。

在项目目录中选中“PyQT_Form.ui”文件,右键点击,在弹出的菜单中选择“External Tools”,然后点击“PyUIC”。

执行完毕后,项目目录中会多出一个“PyQT_Form.py”文件。双击打开该文件,可以看到其自动生成的大致内容如下。

分离界面与逻辑:实现程序业务代码
三、实现程序逻辑
理论上,只要在生成的“PyQT_Form.py”中导入所需包、添加“pushButton_click()”函数的实现代码,并实例化Ui_Form类,程序即可运行。
然而,“PyQT_Form.py”是由PyUIC根据“PyQT_Form.ui”自动生成的。如果在后续开发中需要调整UI(例如调整按钮位置或文本框大小,这在后期开发中几乎是必然需求),重新运行PyUIC生成新的“PyQT_Form.py”时,它会直接覆盖当前文件。
这意味着,如果我们将业务逻辑代码直接写在“PyQT_Form.py”中,每次UI调整导致的重新生成都会覆盖已编写的逻辑代码。
因此,最佳实践是不要直接修改“PyQT_Form.py”文件(或称不要改动该文件)。正确的做法是新建一个Python文件,在其中创建一个子类(如MyPyQT_Form)继承自“PyQT_Form.py”中的Ui_Form类,并将业务逻辑写入该子类中。
3.1 具体实现代码
在项目中新建一个.py文件(例如main.py),并写入以下代码:
import sys
from PyQt5 import QtWidgets
from PyQT_Form import Ui_Form
class MyPyQT_Form(QtWidgets.QWidget,Ui_Form):
def __init__(self):
super(MyPyQT_Form,self).__init__()
self.setupUi(self)
#实现pushButton_click()函数,textEdit是我们放上去的文本框的id
def pushButton_click(self):
self.textEdit.setText("你点击了按钮")
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
my_pyqt_form = MyPyQT_Form()
my_pyqt_form.show()
sys.exit(app.exec_())
3.2 运行演示
右键点击新建的Python文件,选择“Run”(运行)选项。

程序运行后的初始界面如下所示。

点击“PushButton”按钮后,界面显示效果如下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













