pyqt5


此为学习笔记,如有错误请指正

pyqt5 安装

安装教程: https://www.cnblogs.com/hahaa/p/15912736.html

$FileName$
-o
$FileNameWithoutExtension$.py

pyqt5代码教程:https://blog.csdn.net/qq_40243295/article/details/105633221

Qt Designer

Qt Designer 图形界面使用教程 : https://blog.csdn.net/stq054188/article/details/117743536

界面介绍

在这里插入图片描述

主界面介绍

主界面不同区域介绍:

工具箱 区域:提供GUI界面开发使用的各种基本控件,如单选框、文本框等。可以拖动到新创建的主程序界面。

主界面区域:用户放置各种从工具箱拖过来的各种控件。模板选项中最常用的就是Widget(通用窗口)和MainWindow(主窗口)。二者区别主要是Widget窗口不包含菜单栏、工具栏等。可以分别创建对比看看。

对象查看器 区域:查看主窗口放置的对象列表。

属性编辑器 区域: 提供对窗口、控件、布局的属性编辑功能。比如修改控件的显示文本、对象名、大小等。

信号/槽编辑器 区域:编辑控件的信号和槽函数,也可以添加自定义的信号和槽函数。

Qt Designer基本控件介绍

在这里插入图片描述
(1)显示控件。

Lable:文本标签,显示文本,可以用来标记控件。

Text Browser:显示文本控件。用于后台命令执行结果显示。

(2)输入控件,提供与用户输入交互

Line Edit:单行文本框,输入单行字符串。控件对象常用函数为Text() 返回文本框内容,用于获取输入。setText() 用于设置文本框显示。

Text Edit:多行文本框,输入多行字符串。控件 对象常用函数同Line Edit控件。

Combo Box:下拉框列表。用于输入指定枚举值。

(3)控件按钮,供用户选择与执行

Push Button:命令按钮。常见的确认、取消、关闭等按钮就是这个控件。clicked信号一定要记住。clicked信号就是指鼠标左键按下然后释放时会发送信号,从而触发相应操作。

Radio Button:单选框按钮。

Check Box:多选框按钮。

用法

在这里插入图片描述

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'connect_me.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
# 导入程序运行必须模块
import sys
# PyQt5中使用的基本控件都在PyQt5.QtWidgets模块中
from PyQt5.QtWidgets import QApplication, QMainWindow
# 导入designer工具生成的login模块
from login import Ui_Form


class MyMainForm(QMainWindow, Ui_Form):
    def __init__(self, parent=None):
        super(MyMainForm, self).__init__(parent)
        self.setupUi(self)


if __name__ == "__main__":
    # 固定的,PyQt5程序都需要QApplication对象。sys.argv是命令行参数列表,确保程序可以双击运行
    app = QApplication(sys.argv)
    # 初始化
    myWin = MyMainForm()
    # 将窗口控件显示在屏幕上
    myWin.show()
    # 程序运行,sys.exit方法确保程序完整退出。
    sys.exit(app.exec_())

控件创建

标签:点击 Lable 不放—> 拖选到想要的位置 -----> 双击修改标签名
在这里插入图片描述
单行文本输入框: 点击 Line Edit 不放—> 拖选到想要的位置

多行文本输入框: 点击 Line Edit 不放—> 拖选到想要的位置

在这里插入图片描述

文本输出框: 点击 Text Broeser 不放—> 拖选到想要的位置
在这里插入图片描述
多选输入(枚举):点击 Combo Box 不放—> 拖选到想要的位置 -----> 双击多选框,加上枚举的选项---->ok
在这里插入图片描述
单击按钮:点击 Push Button 不放—> 拖选到想要的位置 -----> 双击改名
在这里插入图片描述
保存为.ui文件 点击 PyUic 编译为.py文件

在这里插入图片描述
加上主函数,创建实例
在这里插入图片描述

if __name__ == '__main__':
    from PyQt5 import QtCore, QtGui, QtWidgets
    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow

    app = QApplication(sys.argv)
    MainWindow = QMainWindow()
    ui = Ui_Form()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

就可以运行出基本界面
在这里插入图片描述
创建需要执行的函数模块:

def run_test(self):
    # -----------  获取参数 --------------------------
    test_line = self.lineEdit.text()  # 单行输入标签对应的文本内容
    test_lines = self.textEdit.toPlainText()  # 多行行输入标签对应的文本内容
    test_comboBox = self.comboBox.currentText()  # 获取多选按钮的内容
    print(f'{test_line} + {test_lines} + {test_comboBox}')
    self.textBrowser.append(f'{test_line} + {test_lines} + {test_comboBox}')  # 将输出内容追加到文本输入框
    QtWidgets.QApplication.processEvents()  # 界面实时刷新,可以一条一条挨着输出

将单击按钮与函数模块绑定
在这里插入图片描述

在这里插入图片描述

源码

"""
-*- coding: utf-8 -*-
@time:
@author:zhang xiao yue
@description:
@save path: 
"""
# Form implementation generated from reading ui file 'untitled_jc.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(884, 666)
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(80, 30, 72, 15))
        self.label.setObjectName("label")

        self.label_2 = QtWidgets.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(80, 90, 72, 15))
        self.label_2.setObjectName("label_2")

        self.lineEdit = QtWidgets.QLineEdit(Form)
        self.lineEdit.setGeometry(QtCore.QRect(170, 30, 113, 21))
        self.lineEdit.setObjectName("lineEdit")

        self.textEdit = QtWidgets.QTextEdit(Form)
        self.textEdit.setGeometry(QtCore.QRect(170, 90, 171, 161))
        self.textEdit.setObjectName("textEdit")
        self.label_3 = QtWidgets.QLabel(Form)
        self.label_3.setGeometry(QtCore.QRect(60, 350, 72, 15))
        self.label_3.setText("")
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(Form)
        self.label_4.setGeometry(QtCore.QRect(90, 300, 72, 15))
        self.label_4.setObjectName("label_4")
        self.textBrowser = QtWidgets.QTextBrowser(Form)
        self.textBrowser.setGeometry(QtCore.QRect(160, 290, 256, 192))
        self.textBrowser.setObjectName("textBrowser")
        self.label_5 = QtWidgets.QLabel(Form)
        self.label_5.setGeometry(QtCore.QRect(470, 30, 72, 15))
        self.label_5.setObjectName("label_5")
        self.comboBox = QtWidgets.QComboBox(Form)
        self.comboBox.setGeometry(QtCore.QRect(520, 30, 87, 22))
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(470, 150, 93, 28))
        self.pushButton.setObjectName("pushButton")

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

        # ----------------- 按钮和模块绑定 ----------------------
        self.pushButton.clicked.connect(self.run_test)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.label.setText(_translate("Form", "单行输入"))
        self.label_2.setText(_translate("Form", "多行输入"))
        self.label_4.setText(_translate("Form", "输出"))
        self.label_5.setText(_translate("Form", "多选"))
        self.comboBox.setItemText(0, _translate("Form", "2021"))
        self.comboBox.setItemText(1, _translate("Form", "2022"))
        self.pushButton.setText(_translate("Form", "开始输出"))

    def run_test(self):
        # -----------  获取参数 --------------------------
        test_line = self.lineEdit.text()  # 单行输入标签对应的文本内容
        test_lines = self.textEdit.toPlainText()  # 多行行输入标签对应的文本内容
        test_comboBox = self.comboBox.currentText()  # 获取多选按钮的内容
        print(f'{test_line} + {test_lines} + {test_comboBox}')
        self.textBrowser.append(f'该{test_comboBox},{test_line},{test_lines}')  # 将输出内容追加到文本输入框
        QtWidgets.QApplication.processEvents()  # 界面实时刷新,可以一条一条挨着输出


if __name__ == '__main__':
    from PyQt5 import QtCore, QtGui, QtWidgets
    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow

    app = QApplication(sys.argv)
    MainWindow = QMainWindow()
    ui = Ui_Form()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

Pyinstaller 打包.exe文件

教程:https://blog.csdn.net/abc6368765/article/details/121622951
pyinstaller -F -w main.py 界面
pyinstaller -F main.py 无界面
pyinstaller -F -w -i wind.ico main.py 加图标

使用pyinstaller -F -w main.py命令,可以去除exe程序运行起来之后,后方黑洞洞的控制台窗口,增加我们的观感和体验
pyinstaller -F main.py中的**-F**参数表示覆盖打包,这样在打包时,不管我们打包几次,都是最新的,这个记住就行,固定命令。
使用pyinstaller -F -w -i wind.ico main.py命令,可以指定我们生成的exe可执行文件的图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值