本文介绍Python使用PyQt5进行界面程序编写的一个简单例程。
参考博客http://blog.csdn.net/u013401853/article/details/54581512,参考的博客写的更为详细一些。
容易出现下面问题:
解决Pycharm无法导入包问题 Unresolved reference
- 软件环境准备
PyQt5只有在Python3.5及其以上版本中才能使用,安装方法在Python库安装这篇博客中有说明。此外,需要安装Qt的开发环境,需要使用其中的工具--QtCreator或者Designer。PyQt5的主要作用就是使得Python调用使用QT设计的ui界面进行编程,如此这般就可将QT的界面设计便捷和Python强大的优点结合起来。
补充:(可选,但是建议配置,使用起来更方便)
为了方便在PyCharm中更方便的使用PyQt5,需要在PyCharm中配置PyQt5,包括Qt的Designer以及PyQt5自带的pyuic5工具。
配置过程见:
- Qt界面设计
在Qt的界面开发开发中,设计界面可以使用Qt Creator或者Designer,本质是一样的,本文中使用Designer。
新建一个Main Window项目,保存为testPyQt5.ui(参考博客中建立的是Widget项目)
在界面上添加一个pushButton,名为btn,添加一个testEdit,名为textEdit
通过上图中的来为pushButton添加一个槽函数btn_click(),该图标就是信号和槽编辑器。
进入信号槽编辑模式后,左键按住pushButton然后往外拖到一个地方松开,便会出现下图中的样子
上图中左边为名为btn的pushButton的信号,选中clicked()信号,右边即为与该信号绑定的槽函数。
由于该信号暂时并没与任何槽函数相连接,所以右边的槽函数框中是空白的。此时就需要自己新建一个槽函数了。点击编辑,会弹出一个界面中,点击槽对应的框下面的 ,会生成一个函数,名字修改为btn_click()
然后确认。在返回的界面中,在槽函数那一栏中选择刚才自定义的btn_click()函数
确认并保存。然后将testPyQt5.ui文件放到自己的项目目录下。
- Qt的 ui文件转化为python文件
PyQt5提供了将ui文件转化为python文件的工具--pyuic5,在python安装目录下的scripts文件夹下,记得将pyuic5所在的路径添加到系统环境变量中。
进入项目目录下(前一步中已将testPyQt5.ui放到项目目录下)
输入:
pyuic5 testPyQt5.ui -o testPyQt5.py
便会在当前目录下生成名为testPyQt5.py的文件。
如果前面自PyCharm中配置了PyQt5,就可以直接邮件testPyQt5.ui,External Tools->PyUIC,就自动生成了.py文件。
- 在Python中使用Qt设计的界面
代码如下:
from testPyQt5 import Ui_MainWindow #导入uitestPyQt5.ui转换为uitestPyQt5.py中的类
from PyQt5 import QtWidgets
import sys
class Mywindow(QtWidgets.QMainWindow,Ui_MainWindow):
#建立的是Main Window项目,故此处导入的是QMainWindow
#参考博客中建立的是Widget项目,因此哪里导入的是QWidget
def __init__(self):
super(Mywindow, self).__init__()
self.setupUi(self)
def btn_click(self): #定义槽函数btn_click(),也可以理解为重载类Ui_MainWindow中的槽函数btn_click()
self.textEdit.setText("hi,PyQt5~")
app = QtWidgets.QApplication(sys.argv)
window = Mywindow()
window.show()
sys.exit(app.exec_())
效果如下图: