python2和python3都可以,先安装PyQT5:
sudo apt-get install python-pyqt5 python3-pyqt5
安装PyQT4:
sudo apt-get install python-qt4 python3-pyqt4
使用mayavi要安装下面依赖库:
sudo apt-get install python3-pyqt5.qtsvg python-pyqt5.qtsvg
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的文件。
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'testPyQt5.ui'
#
# Created by: PyQt5 UI code generator 5.5.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(604, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(190, 140, 181, 91))
self.textEdit.setObjectName("textEdit")
self.btn = QtWidgets.QPushButton(self.centralwidget)
self.btn.setGeometry(QtCore.QRect(190, 90, 99, 27))
self.btn.setObjectName("btn")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 604, 31))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
self.btn.clicked.connect(MainWindow.btn_click)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.btn.setText(_translate("MainWindow", "PushButton"))
如果前面自PyCharm中配置了PyQt5,就可以直接邮件testPyQt5.ui,External Tools->PyUIC,就自动生成了.py文件。
- 在Python中使用Qt设计生成的界面(testPyQt5.py)
- 主程序代码如下:
#encoding: utf-8
# pyuic5 testPyQt5.ui -o testPyQt5.py
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_())
效果如下图:
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/w1019220367/article/details/55106716