今天来给大家分享一下关于python写漂亮的ui界面的问题,以下是对此问题的归纳整理,让我们一起来看看吧。
python是怎么做接口的?
基于Qt的Python接口包PyQt,可以直接使用Qt控件,也可以使用QSS进行界面美化。我简单介绍一下这个包的安装和使用,实验环境是Win7+Python3.6+PyCharm5.0,主要内容如下:
1.安装PyQt。只需在cmd窗口中直接输入命令“pip install pyqt5 ”,如下所示。由于安装包相对较大,您需要等待一段时间:
这里我创建了一个简单的窗口程序,一个登录页面对话框,两个QLabel,两个QLineEdit和两个QPushButton,如下所示。设计完成后,可以直接编辑相应控件的样式表属性,用QSS美化控件(类似于CSS),或者在代码中进行详细的美化设计(如果美化比较复杂,可以专门编写QSS文件,加载到程序中):
这里我创建了一个简单的窗口程序,一个登录页面对话框,两个QLabel,两个QLineEdit和两个QPushButton,如下所示。设计完成后,可以直接编辑相应控件的样式表属性,用QSS美化控件(类似于CSS),或者在代码中进行详细的美化设计(如果美化比较复杂,可以专门编写QSS文件,加载到程序中):
利用自带的转换工具pyuic5可以将设计好的ui界面直接转换成Python程序(命令pyuic5 -o py file UI文件,如pyuic5 -o test.py test.ui)如下,这是刚刚设计好的UI界面的Python代码:
这里我们添加main函数,直接创建上面类的对象,只显示对话框,如下:
点击运行这个程序,效果如下,如上图设计,非常方便:
python如何使用qtdesigner设计的ui?
软件和硬件环境
OS X·埃尔·卡皮坦
Python 3.5.1
PyQt 5.5.1
PyCharm 5.0.1
序
在PyQt5系列的第一篇文章h50218157中,我们搭建了一个开发环境。今天我们就用Python开发第一个Qt GUI程序,让大家感受Qt开发的魅力,熟悉Qt开发GUI程序的一般流程。
制作一个程序UI界面一般有两种方式,使用UI工具和纯代码编写,比如移动开发中的Android和iOS,我们在PyQt5中也有这两种方式。
QtDesigner工具简介
QtDesigner是专门用来制作Qt程序UI的工具。使用起来非常简单。可以通过拖拽点击完成复杂的界面设计,也可以随时预览效果图。
其中1区是UI界面的制作导向,QtDesigner为我们提供了一些常用的模块,非常方便;区域2是UI控件列表;区域3是控制属性列表;区域4是动作编辑器的编辑列表;编辑区域5中信号和插槽的列列表;区域6是资源处理窗口。
第一个PyQt5程序
说了这么多,不如去实践。
这是我们第一个PyQt5项目的界面渲染。需要实现的是,点击界面上的按钮,会弹出一个提示框,提示框里显示一串文字。
好了,目标定了,我们马上开始实现。
QtDesigner设计用户界面
基于主窗口模块创建一个UI文件,命名为firstPyQt5.ui从Widget框中找到(或拖动)按钮到工作间空,调整位置,在按钮上输入文本,调整字体和大小,这些都可以在属性编辑器中操作。在弹出框上点击按钮的操作会引出Qt中一对非常重要的概念,即信号和槽。我打算就此再开一篇博文。现在你只需要知道slot是一个函数。如果一个信号被绑定到一个槽,那么该信号被触发,该槽将被执行。
那么问题来了,如何在QtDesigner中绑定signal和slot?打开菜单栏中的编辑->编辑信号/槽,然后将光标移动到按钮上点击拖动,会弹出一个编辑框。
因为是点击,信号选择了clicked(),slot功能还不可用,所以我们会点击编辑新建一个名为firstPyQt5_button_click()的。
为了演示资源文件的使用,这里导入了两张图片,一张用于主窗口,另一张用于帮助菜单项中的操作。
在QtDesigner引用资源文件之前,需要准备一个qrc文件,类似于xml文件,用来确定资源文件的路径。
qt.png
penguin.jpg
接下来,可以将qrc文件倒入QtDesigner的资源浏览器中,这样就可以使用qrc文件中描述的资源了。
将firstPyQt5.ui转换成python代码。
很简单,通过Qt提供的命令行工具PUIC 5就可以轻松实现。
pyuic5 -o firstPyQt5.py firstPyQt5.ui创建PyCharm项目
使用以下代码创建一个新的python文件main.py。
# -*- coding: utf-8 -*-__author__ = 'djstava@gmail'导入系统
来自PyQt5。QtWidgets导入QApplication,QMainWindow
从firstPyQt5导入*
if _ _ name _ _ = ' _ _ main _ _ ':
' '
main function
' '
app = QA application(sys . argv)
main window = qmain window()
Ui = Ui _ main window()
Ui . setup Ui(main window)
main window . show()
sys . exit(app . exec _())
接下来修改firstPyQt5.py文件,主要是实现slot函数,因为之前在QtDesigner中没有实现,让它弹出一个消息框,
QtWidgets.QMessageBox.information(self.pushButton,"标题","这是第一个PyQt5 GUI程序")
最后运行下一个项目。
这里ui文件一般保存为单个文件,方便更新。