Qt Desgner可视化设计窗体,窗体模板主要包括以下3种:
1、Dialogm模板,基于QDialog类的窗体,具有一般对话框的特性,如可以模态显示、具有返回值等。
2、Main Window模块,基于QMainWindow类的窗体,具有主窗口的特性,窗口上有主菜单栏、工具栏、状态栏等。
3、Widget模板,基于QWidget类窗体。QWidget类是所有界面组件的基类,如QLabel、QPushButton等界面组件都是从QWidget类继承而来的。QWidget类也是QDialog和QMainWindow的父类,基于QWidget类创建的窗体可以作为独立的窗口运行,也可以嵌入其他界面组件内显示。
Qt Desgner提供基本的编辑信号和槽的方法。本次实例新建Widget模板窗口,保存命名为MainWinSignalSlog.ui,实现单击关闭按钮后关闭窗口。
Buttons模块中找到QPushButton控件拖入到窗体From中,属性区域找到按钮text属性,属性值改为"关闭窗口",将objectname属性值改为"closeWinBtn"。单击工具栏上的"编辑信号与槽",直接在"关闭窗口"按钮上按住鼠标左键不放,拖到弹出配置连接,看出按钮控件会发射很多信号,选择需要的即可。信号选择单击clicked(),槽函数选择close(),点击ok建立连接。
用以上方法建立信号与槽连接后,在UI工具右下侧的信号与槽编辑窗口可对建立的关系进行调整。
使用UI Designer设计好的窗体保存为MainWinSignalSlog.ui后,如要在python中使用这个窗体,需要使用PyQt5的工具pyuic5.exe将界面文件转换为Python文件。
1、在windows的cmd窗口中用cd切换到文件MainWinSignalSlog.ui保存目录位置,直接执行pyuic5 -o ui_MainWinSignalSlog.py MainWinSignalSlog.ui,编译输出的文件名可任意指定。
2、也可以创建一个uic.bat保存到项目文件夹下,bat文件是windows的批处理文件,将以上命令保存到txt文本修改后缀为.bat。
3、也可以在 Pycharm 中配置 External Tools
编译后在MainWinSignalSlog.ui文件所在的目录下输出ui_MainWinSignalSlog.py,内容如下:
界面文件定义了一个类Ui_closeWinBtn,其父类是object,不是QWidget,定义一个函数setupUi(),传入参数两个,self是函数自己,closeWinBtn是传入的参数,另外retranslateUi()函数设置窗体的标题、标签文字等。
编译转换后,就可以用Ui_closeWinBtn类来创建GUI应用程序。以下代码完成了点击按钮关闭窗口的功能实现。
也可以一个信号触发多个槽函数。同理UI 工具设计布局(界面),建立信号与槽关系,转换为.py文件
再次利用界面与逻辑分离的GUI程序框架,稍微修改,点击即可运行。