PyQt5简单例程

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

PyQt5教程——事件和信号(5)

 

转载于:https://my.oschina.net/u/2245781/blog/1852991

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值