PyQt5的使用

PyQt5

目录

  • Qt Designer
  • PyQt5基本窗口控件(QMainWindow、Qwidget、Qlabel、QLineEdit、菜单、工具栏等)
  • PyQt5高级组件(QTableView、QListView、容器、线程等)
  • PyQt5布局管理(QBoxLayout、QGirdLayout、QFormLayout、嵌套布局等)
  • PyQt5信号与槽(事件处理、数据传递等)
  • PyQt5图形与特效(定制窗口风格、绘图、QSS与UI美化、不规则窗口、设置样式等)
  • PyQt5扩展应用(制作PyQt5安装程序、数据处理、第三方绘图库在PyQt5中的应用、UI自动化测试等)

详细内容

参考:
https://blog.csdn.net/m0_57021623/article/details/123459038?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165560169016782184691764%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165560169016782184691764&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-123459038-null-null.142v17pc_search_result_control_group,157v15new_3&utm_term=pyqt5%E8%8F%9C%E9%B8%9F%E6%95%99%E7%A8%8B&spm=1018.2226.3001.4187

1、安装软件与配置

pip install PyQt5 -i https://pypi.douban.com/simple

pip install PyQt5-tools -i https://pypi.douban.com/simple

安装失败(重启再装、也许是因为占用了内存)
pip install PyQt5-tools  -i https://pypi.douban.com/simple   --user

配置Qt Designer:

Working directory:$FileDir$

PyQt5的使用

配置PyUIC:

Program:python的安装目录下的python.exe文件
Arguments:-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py

PyQt5的使用

配置Pyrcc:

Program:python的安装目录下的Scripts文件夹的pyrcc5.exe文件
Arguments:$FileName$ -o $FileNameWithoutExtension$_rc.py

PyQt5的使用

2、创建ui界面

创建ui

PyQt5的使用

PyQt5的使用

PyQt5的使用

将.ui文件转化为.py文件的命令行方法:

python -m PyQt5.uic.pyuic first.ui -o first.py
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(581, 518)
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(20, 20, 93, 28))
        self.radioButton.setObjectName("radioButton")
        self.verticalScrollBar = QtWidgets.QScrollBar(Form)
        self.verticalScrollBar.setGeometry(QtCore.QRect(230, 130, 20, 201))
        self.verticalScrollBar.setOrientation(QtCore.Qt.Vertical)
        self.openGLWidget.setObjectName("openGLWidget")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.pushButton.setText(_translate("Form", "PushButton"))
        self.checkBox.setText(_translate("Form", "CheckBox"))
        self.toolButton.setText(_translate("Form", "点击"))
        self.radioButton.setText(_translate("Form", "RadioButton"))
        self.label.setText(_translate("Form", "TextLabel"))
        self.comboBox.setItemText(0, _translate("Form", "男"))
        self.comboBox.setItemText(1, _translate("Form", "女"))
开发第一个基于PyQt5的桌面应用

import sys

from PyQt5.QtWidgets import QApplication,QWidget

if __name__ == '__main__':
    # 创建QApplication类的实例
    app = QApplication(sys.argv)
    # 创建一个窗口
    w = QWidget()
    # 设置窗口尺寸   宽度300,高度150
    w.resize(400,200)
    # 移动窗口
    w.move(300,300)

    # 设置窗口的标题
    w.setWindowTitle('第一个基于PyQt5的桌面应用')

    # 显示窗口
    w.show()

    # 进入程序的主循环,并通过exit函数确保主循环安全结束(该释放资源的一定要释放)
    sys.exit(app.exec_())

想要在程序中改动Designer创建的界面,得把他的ui文件改为py文件

使用(QmainWindow)创建窗口

import sys
import first

from PyQt5.QtWidgets import QApplication,QMainWindow

if __name__ == '__main__':
    # 只有直接运行这个脚本,才会往下执行
    # 别的脚本文件执行,不会调用这个条件句

    # 实例化,传参
    app = QApplication(sys.argv)

    # 创建对象
    mainWindow = QMainWindow()

    # 创建ui,引用first文件中的Ui_Form类
    ui = first.Ui_Form()
    # 调用Ui_MainWindow类的setupUi,创建初始组件
    ui.setupUi(mainWindow)
    # 创建窗口
    mainWindow.show()
    # 进入程序的主循环,并通过exit函数确保主循环安全结束(该释放资源的一定要释放)
    sys.exit(app.exec_())

布局

水平

垂直

栅格

信号与槽

信号:是由对象或控件发射出去的消息。可以理解为按钮的单击事件。

当单击按钮时,按钮就会向外部发送单击的消息,这些发送出去的信号需要一些代码来拦截,这些代码就是槽

槽本质上是一个函数或者方法,信号可以理解为事件,槽可以理解为事件函数

信号与槽的设置:就是需要将信号和槽绑定

一个信号可以和多个槽绑定,一个槽可以拦截多个信号。

信号和槽绑定有两种方式,一种是用QtDesigner进行绑定,一种是在代码中进行绑定

PyQt5的使用

PyQt5的使用

PyQt5的使用

PyQt5的使用

程序中的信号与槽的绑定

PyQt5的使用

Original: https://www.cnblogs.com/elijah-li/p/16391583.html
Author: elijah_li
Title: PyQt5的使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612112/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球