精华内容
下载资源
问答
  • 2021-01-20 11:31:22

    由于初学PyQt5开发项目没统一构建好目录,现在看起来一片乱。
    在此记录或建议一个PyQt5项目目录,是自己在开发中和借鉴前端框架Vue-admin感受出来的。
    做个记录。
    如果有补充还请您留下宝贵的意见。感激不尽!
    在这里插入图片描述
    在这里插入图片描述

    更多相关内容
  • PyQt5 项目案例的系列源代码资源,通过这些案例代码可以举一反三,进行综合开发一些 PyQt5 的GUI应用程序。
  • 本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5项目实战。 什么叫从零开始?从软件安装、环境配置开始。不跳过一个细节,不漏掉一行代码,不省略一个例图。 本节讲解:1. 安装 PyQt5 和 Qt...

    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战。
    什么叫从零开始?从软件安装、环境配置开始。
    不跳过一个细节,不漏掉一行代码,不省略一个例图。

    欢迎关注『Python 小白从零开始 PyQt5 项目实战 @ Youcans』系列,持续更新中
    Python 小白从零开始 PyQt5 项目实战(1)安装与环境配置
    Python 小白从零开始 PyQt5 项目实战(2)菜单和工具栏
    Python 小白从零开始 PyQt5 项目实战(3)信号与槽的连接


    1. PyQt5 图形界面开发工具

    1.1 从 CLI 到 GUI

    CLI:命令行用户接口,Command Line User Interface。
    GUI:图形用户界面,Graphical User Interface。

    1.2 PyQt5 开发工具

    Qt 库是跨平台的 C++ 库的集合,是最强大的 GUI 库之一,可以实现高级 API 来访问桌面和移动系统的各种服务。
    PyQt5 是一套 Python 绑定 Digia QT5 应用的框架。PyQt5 实现了一个 Python模块集,有 620 个类,6000 个函数和方法。
    PyQt5 的优点:简单好用,功能强大, 跨平台支持,文档齐全,稳定性高,生态支持,开源免费。



    2. 安装 PyQt5 和 QtTools

    2.1 安装 Anaconda3(略)


    2.2 安装 PyCharm,配置运行环境(略)


    2.3 pip 安装 PyQt5

    pip install pyqt5 -i https://mirrors.aliuyun.com/pypi/simple
    

    安装了 PyQt5 就可以用 Python 语言编写 Qt 程序。
    确实可以,网上有很多相关的教程,我也学习和编写了几个这样的 GUI。
    例如,可以用一个简单的例程,检测 PyQt5 的安装是否成功。

    # GUIdemo1.py
    # Demo1 of GUI by PqYt5
    # Copyright 2021 Youcans, XUPT
    # Crated:2021-10-06
    
    from PyQt5 import QtWidgets
    import sys
    
    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)  # 初始化界面
        MainWindow = QtWidgets.QWidget()  # 生成一个主窗口
        MainWindow.show()  # 显示主窗口
        sys.exit(app.exec_())  # 在主线程中退出
    

    运行程序 GUIdemo1,将弹出如下的图形界面:

    在这里插入图片描述

    2.4 pip 安装 QtTools

    虽然安装 PyQt5 就可以编程实现 GUI,但是学习、编程、调试、修改都是相当复杂和繁琐的。而 Qt Designer 基本是通过人机交互的排版方式进行界面设计,非常方便、直观。所以我在使用 Qt Designer 图形界面设计工具之后,就再也不愿意编写 Python 程序来实现 GUI 了。

    Qt Tools 包含了两个重要的工具:

    • 图形界面设计工具 Qt Designer,用于设计图形界面,生成 .ui文件,以 xml 格式存储界面和控件的属性;
    • UI 文件转换工具 PyUic,用于将 .ui 文件解析为 .py 文件的工具。

    Qt Tools 工具可以直接使用 pip 方式安装:

    pip install pyqt5-tools  -i https://mirrors.aliuyun.com/pypi/simple
    


    3. QtDesigner 和 PyUIC 的环境配置

    使用 PyCharm 集成开发工具的小白,在安装 QtTools 库以后,还要对 QtDesigner 和 PyUIC 进行环境配置,将其集成到 PyCharm 中。


    3.1 在 PyCharm 添加 Create Tools

    • 运行 PyCharm;
    • 从顶部菜单栏选择:File -> Settings,弹出 Seetings 窗口;
    • 从左侧菜单栏中选择:Tools -> ExternalTools,在右侧点击 “+” 弹出 CreateTool 窗口;

    3.2 添加 QtDesigner 工具

    在这里插入图片描述

    在 CreateTool 窗口依次填写:

    • Name:填写 “QtDesigner”
    • Program:填写 designer.exe 的路径,例如:

    C:\Python\Anaconda3\Lib\site-packages\qt5_applications\Qt\bin\designer.exe

    注意:此处填写刚才 pip 安装的 pyqt5-tools 工具包的路径。如果小白的 Python 或 Anaconda3 安装在其他路径下,则从对应的目录找到 “qt5_applications\Qt\bin\designer.exe”,或者在资源管理器中搜索 “designer.exe” 文件找到安装路径。

    • Arguments:不用填写
    • Working directory:填写生成 UI 文件的保存路径
      例如,要将 .ui 文件保存在当前 Project 的路径下,则填写 “$ProjectFileDir$”;要将 .ui 文件保存在当前 Project 路径下的 \program 子目录中,则填写 “$ProjectFileDir$\program”。

    填好 CreateTool 窗口后,点击 “OK” 即可完成 QtDesigner 工具的添加。


    3.3 添加 PyUIC 工具

    在这里插入图片描述

    在 CreateTool 窗口依次填写:

    • Name:填写 “PyUIC”
    • Program:填写 python.exe 的路径,例如:

    C:\Python\Anaconda3\python.exe

    注意:此处填写 IDE 使用的 Python Interpreter的路径。如果小白的 Python 或 Anaconda3 安装在其他路径下,或者选择其它路径中的 python.exe 作为 Python Interpreter,可以从 Pycharm -> Settings -> Project -> Python Interpreter 打开配置窗口,从右侧上方 “Python Interpreter:” 选项框找到 python.exe 的路径。

    • Arguments:填写"-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py”
    • Working directory:填写将 .ui 文件转换为 .py 文件的保存路径
      例如,要将 .py 文件保存在当前 Project 的路径下,则填写 “$ProjectFileDir$”;要将 .py 文件保存在当前 Project 路径下的 \program 子目录中,则填写 “$ProjectFileDir$\program”。

    填好 CreateTool 窗口后,点击 “OK” 即可完成 QtDesigner 工具的添加。

    安装和环境配置完成。



    4. QtDesigner 和 PyUIC 的快速入门

    使用 QtDesigner 开发 PyQt5 图形界面的基本步骤是:
    (1)使用图形界面设计工具 QtDesigner 进行图形界面设计,生成 .ui 文件;
    (2)使用 UI 转换工具 PyUIC 将 .ui 文件转换为 .py 文件;
    (3)编写一个 Python 应用程序调用 .py 界面文件,就可以实现 Python 平台的 GUI 编程。

    虽然这些步骤看起来有些罗嗦,其实是非常简单方便的。下面我们用一个简单的例程详细讲解每一个步骤的操作。


    4.1 QtDesigner 的启动和入门

    (1)- 运行 PyCharm,打开建立的 Python Project,例如 Project 为 PyqtDemo。
    (2)- 从顶部菜单栏选择:Tools -> ExternalTools -> QtDesigner,弹出如下的 QtDesigner 运行窗口。

    在这里插入图片描述


    (3)- 新建窗体
    首次运行 QtDesigner 时可能会自动弹出 “新建窗体” 对话框,也可以通过菜单栏选择:“文件 -> 新建” 或快捷键 “Ctrl+N” 唤起 “新建窗体” 对话框。
    在 “新建窗体” 窗口的左侧菜单选择 “MainWindow” 新建一个图形窗口。

    (4)- 设计图形界面

    QtDesigner 的使用界面与 AutoCAD 等设计软件类似,很好上手。

    主界面分左中右三部分,左侧是各种备选的控件对象,右侧上方的 “对象查看器” 显示控件的树状结构,右侧下方的 “属性编辑器” 显示控件的各种属性,中间部分用于显示所设计的界面。

    新建的窗口 “MainWindow” 虽然是一个空白的图形窗口,但已经生成了 centralwidget、menubar、statusbar 三个基本控件,可以在右侧上方 “对象查看器” 查看这些控件及结构。

    下面我们为新建的图形窗口添加几个图形控件:

    在这里插入图片描述

    新建一个按钮控件:

    • 从左侧控件栏的 Button 中选择 PushButton 按钮,鼠标左键点中 PushButton 按钮不放,移动鼠标将 PushButton 按钮拖动到中间的新建图形窗口内的任意位置,松开鼠标左键,就在图形窗口位置生成了一个 PushButton 按钮对象。
    • 鼠标左键点击图形窗口中的这个 PushButton 按钮对象,拖动按钮可以调整控件的位置,对于其它控件也可以通过鼠标拖动来调整位置。
    • 鼠标选中 PushButton 按钮对象,控件周围的边界位置上就出现 8个蓝色的点,表示控件被选中,这时可以在右侧的 “属性编辑器” 内对对象的属性进行编辑和修改,例如:
      • 将 PushButton 对象的高度修改为 120,宽度修改为 40;
      • 将 PushButton 对象的 “QAbstractButton->text” 修改为 “测试按钮”;

    新建一个文本显示框控件:

    • 从左侧控件栏的 InputWidget 中选择 TextEdit 按钮,鼠标左键选中 TextEdit 按钮拖动到新建图形窗口内的,松开鼠标左键就在图形窗口生成了一个 TextEdit 对象。
    • 鼠标选中 TextEdit 对象,在右侧的 “属性编辑器” 内可以对对象的属性进行编辑和修改,例如:
      • 将 TextEdit 对象的高度修改为 300,宽度修改为 200;
      • 对于 TextEdit 对象的显示内容可以用 html、markdown 等格式编辑,也可以鼠标双击 TextEdit 对象唤出 html 编辑对话框,输入希望显示的内容。

    现在,我们就已经用 QtDesigner 完成了一个基本的图形界面。

    (5)- 将设计的图形界面保存为 .ui文件
    保存文件就不赘述了,菜单、工具按钮和快捷键都可以,例如保存为 uiDemo1.ui。

    注意文件的保存路径,默认保存在添加 QtDesigner 工具时 “Working directory” 所设置的路径,当然也可以另存到其它路径。
    本文 3.2 添加 QtDesigner 工具 中 “Working directory” 填写 “$ProjectFileDir$\program”,默认将 .ui 文件保存在当前 Project 路径下的 \program 子目录中。
    本文的项目默认设置将 .py 文件也保存在当前 Project 路径下的 \program 子目录中,在应用程序编程时就可以直接导入图形界面文件。
    如果 PyChrm 或 QtDesigner 设置的文件保存路径不同,要注意导入图形界面文件时设置和使用正确的路径。


    4.2 PyUIC 的使用

    (1)- 运行 PyCharm,打开 Python Project,刚才用 QtDesigner 建立的 uiDemo1.ui 文件显示在左侧 Project -> PyqtDemo -> program 显示框中。
    如果该 .ui 文件没有显示,说明环境变量路径设置不同,可以重新设置,也可以在保存 .ui 文件时另存到当前 Project 路径下的 \program 子目录中。
    (2)- 鼠标选中 .ui 文件,点击鼠标右键唤出下拉菜单,选择:ExternalTools -> PyUIC,点击鼠标左键运行,PyUIC 将选中的 .ui 文件转换为 .py 文件,在该路径生成 uiDemo1.py 文件。

    在这里插入图片描述


    4.3 编写 Python 应用程序调用图形界面

    我们编写一个主程序调用设计的图形界面 uiDemo1.py,就可以完成一个图形界面应用程序。

    # GUIdemo2.py
    # Demo2 of GUI by PqYt5
    # Copyright 2021 Youcans, XUPT
    # Crated:2021-10-06
    
    from PyQt5.QtWidgets import QApplication, QMainWindow
    import sys
    import uiDemo1
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)  # 创建应用程序对象
        MainWindow = QMainWindow()  # 创建主窗口
        ui = uiDemo1.Ui_MainWindow()
        ui.setupUi(MainWindow)
        MainWindow.show()  # 显示主窗口
        sys.exit(app.exec_())  # 在主线程中退出
    

    在主程序 GUIdemo2.py 中,我们通过 “import uiDemo1” 导入了 图形界面 uiDemo1.py。

    运行程序 GUIdemo2,将弹出如下的图形界面:

    在这里插入图片描述


    如果你能得到这个图形界面,就说明 Pyqt5 和 QtTools 已经安装成功、配置正确了。

    不过,GUIdemo2 中的按钮和点击之后并没有任何反应,这是因为我们还没有设置这些控件所触发的动作和应用。

    在以后的程序中,我们将不断增加和丰富这个图形界面应用程序。

    【本节完】


    版权声明:

    欢迎关注『Python 小白的 PyQt5 项目实战 @ youcans』 原创作品

    原创作品,转载必须标注原文链接:https://blog.csdn.net/youcans/article/details/120640342

    Copyright 2021 youcans, XUPT

    Crated:2021-10-06


    欢迎关注『Python 小白从零开始 PyQt5 项目实战 @ Youcans』系列,持续更新中
    Python 小白从零开始 PyQt5 项目实战(1)安装与环境配置
    Python 小白从零开始 PyQt5 项目实战(2)菜单和工具栏

    Python 小白从零开始 PyQt5 项目实战(3)信号与槽的连接

    展开全文
  • 开始创建PyQt5项目spyder中创建一个项目Qt Create中创建一个项目创建项目编辑.ui文件三级目录 spyder中创建一个项目 Qt Create中创建一个项目 在这里创建了一个项目,而不是像第一节中创建一个Qt designer文件,...

    PyQt 项目框架

    在这里插入图片描述
    1、子文件夹QTApp:QT项目所在的文件夹。
    2、main.py:创建应用程序和窗体对象的实例,显示窗体并运行的主程序。
    3、myDialog.ui:与窗体相对应的业务逻辑类。
    4、ui_Dialog.py:用pyuic5对文件Dialog.ui编译转换得到的python程序文件。

    创建一个python项目

    在这里插入图片描述
    在这里插入图片描述

    创建一个QT项目

    在这里创建了一个项目,而不是像第一节中创建一个Qt designer文件,因为只有在Qt项目中包含.h和.app文件,后续才能看到控件的信号函数和槽函数,这个后面会详细介绍。
    在这里插入图片描述

    在这里插入图片描述

    A
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    编辑.ui文件

    双击打开.ui文件。
    在这里插入图片描述
    在界面添加两个Push Button控件,控件的属性如下表:

    objectname类名称属性设置
    btn_trainQPushButtonText = “train”
    btn_testQPushButtonText = “train”

    在这里插入图片描述

    button按钮增加click槽函数

    在PushButton控件上右键,选择“转到槽”,即“Go to slot …”。选择clicked()信号。
    在这里插入图片描述
    在这里插入图片描述
    然后在QT项目中的dialog.cpp文件夹中自动生成一个C++的槽函数框架,在这里我们不需要写任何C++代码,我们只需要使用自动生成的槽函数的名称,这会在myDialog.py文件中使用到它们。
    在这里插入图片描述

    创建批处理文件uic.bat

    批处理文件调用pyuic5工具将dialog.ui文件编译为Python程序文件ui_dialog.py。pyuic5工具是集成在了PyQt5中,不用在下载。rem表示注释

    echo off
    rem 用pyuic5编译子文件夹下QTApp下的Dialog.ui文件,生成的.py文件在当前目录下
    pyuic5 -o ui_Dialog.py .\QtApp\Dialog.ui
    

    创建myDialog.py文件

    在Spyder中创建一个myDialog.py文件,包含对窗体进行业务操作的类。
    在该文件中创建一个与QT中生成的槽函数名称同名的一个方法:on_btn_train_clicked(self)。

    from PyQt5.QtWidgets import QDialog
    
    from ui_Dialog import Ui_Dialog
    
    
    class QMyDialog(QDialog):
        def __init__(self,parent=None):
            super().__init__(parent)
            self.ui = Ui_Dialog()    #创建UI对象
            self.ui.setupUi(self)  #构造UI
    
        def on_btn_train_clicked(self):      #按键的click事件
            """
            按键click实现的功能
            "
    

    创建main.py文件

    在Spyder中创建一个main.py文件,创建应用程序和窗体对象的实例,显示窗体并运行。

    import sys
    
    from PyQt5.QtWidgets import QApplication
    
    from myDialog import QMyDialog
    
    app = QApplication(sys.argv)   #创建GUI应用程序
    mainform = QMyDialog()         #创建主窗体
    mainform.show()                #显示主窗体
    sys.exit(app.exec_())
    
    展开全文
  • Python 小白从零开始 PyQt5 项目实战(4)基本控件

    千次阅读 多人点赞 2021-10-09 09:52:53
    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5项目实战。 什么叫从零开始?从软件安装、环境配置开始。不跳过一个细节,不漏掉一行代码,不省略一个例图。 PyQt5 提供了丰富的输入输出...

    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战。
    什么叫从零开始?从软件安装、环境配置开始。不跳过一个细节,不漏掉一行代码,不省略一个例图。
    PyQt5 提供了丰富的输入输出控件。本文介绍通过 QtDesigner 工具栏创建常用的基本控件,包括各种按钮控件、文本输入控件和调节输入控件。

    欢迎关注『Python 小白从零开始 PyQt5 项目实战 @ Youcans』系列,持续更新中
    Python 小白从零开始 PyQt5 项目实战(1)安装与环境配置
    Python 小白从零开始 PyQt5 项目实战(2)菜单和工具栏
    Python 小白从零开始 PyQt5 项目实战(3)信号与槽的连接
    Python 小白从零开始 PyQt5 项目实战(4)基本控件



    1. PyQt5 控件简介

    1.1 什么是控件

    控件也称控件对象,是 Qt用户界面上最基本的组件类型,也是构成用户界面的基本结构。用户界面上显示的所有内容都是控件,例如按钮、标签、文本框,又如菜单栏、工具栏、状态栏,甚至整个窗口本身也是控件。

    QWidget 类是 PyQt5 的基类,也是所有控件的父类。所有的 Qt 控件都是 QWidget 类的子类,因此都继承了 QWidget 类的特性,可以接收用户的输入事件,如鼠标和键盘输入,并可以在用户界面上显示控件内容,还可以存放其它控件。


    1.2 编辑控件的属性

    控件具有属性。不同类型的控件具有部分相同的属性,也具有一些不同的专有属性。

    控件的相同属性包括:名字,形状,位置,大小,设置格式。控件的专用属性包括:展示内容,接受输入,用户交互,日期,框架,等等。

    所有的 Qt 控件都是 QWidget 类的子类,继承了 QWidget 类的属性。因此,我们学习控件可以按类进行学习,先学习其继承的父类的通用属性,再学习控件所特有的专有属性。对于控件的学习就是一个类的继承关系的结构图。

    我们以图形界面 uiDemo5.ui 为例,介绍控件的通用属性,并对控件的属性进行编辑修改。

    如前所述,QtDesigner 右侧上方的 “对象查看器” 显示了界面中的控件名称和结构,下方的 “属性编辑器” 显示了选中的控件对象的各种属性。在图形界面中选择某个控件,或者在 “对象查看器” 中选择某个控件,在"属性编辑器" 就会显示该控件对象的属性。

    在这里插入图片描述


    不论是窗口对象 MainWindow、菜单栏 menubar、工具栏 toolBar,还是按钮 pushButton、编辑行 lineEdit,都有一些相同的属性,例如:

    • objectName:控件名,非常重要。准确的说是控件的 ID,Python 程序中访问控件、控件交互都是使用 objectName。所有控件都必须具有唯一的 objectName,不能重名。不能使用中文字符。
    • geometry:控件的大小和位置。
      • 控件的宽度和高度可以修改,对于 MainWindow 来说控件的宽度/高度就是图形界面程序窗口的宽度/高度。
      • 控件位置 (X, Y) 是控件在窗口控件的坐标值,MainWindow 的控件位置不能修改,其它控件的位置 (X, Y) 可以根据需要修改。
      • minimumSize、maximumSize 是主窗口大小拉伸后,控件对象的最小尺寸、最大尺寸。
    • font:控件显示的字体选择,包括字体、字号、风格、效果等选项。

    1.3 PyQt5 的控件类型

    要了解 QtWidgets 类的子类,可以使用 “subclasses()” 将所有的子类打印出来,共有约 30个子类。

        import PyQt5
        print(QtWidgets.QWidget.__subclasses__())
    

    这些控件类型,总体上可以分类如下:

    • 输入控件:

      • 按钮:QPushButton(按键按钮),QToolButton(工具按钮),QRadioButton(单选框),QCheckButton(多选框),QCommandLinkButton(连接命令的按钮)
      • 键盘输入控件:QlineEdit(单行输入),QTextEdit(多行输入),QPlainTextEdit(普通多行输入),QkeySequenceEdit(快捷键输入)
      • 调节输入控件:QAbstractSpinBox(步长调节输入),QDateEdit(日期输入),QTimeEdit(时间输入),QDateTimeEdit(日期和时间输入)
      • 数字调节框控件:QSpinBox(整型数字调节框),QDoubleSpinBox(浮点数字调节框)
      • 滑动输入控件:QDial(旋转拖滑输入),QSlider(直线拖动输入),QScrollBar(滚动条),QRubberBand(橡皮筋拖拽)
      • 下拉输入控件:QComboBox(组合框下拉选项),QSlider(直线拖动输入),QScrollBar(滚动条),QRubberBand(橡皮筋拖拽)
      • 对话框输入控件:QDialog(对话框),QColorDialog(颜色对话框),QFileDialog(文件对话框),QFontDialog(字体对话框),QInputDialog(输入对话框)
      • 日历控件:QCalendarWidget(日期选择部件)
    • 显示控件:

      • 内容显示控件:QLabel(显示框),QLCDNumber(液晶显示器),QProgressBar(进度条)
      • 对话框显示控件:QMessageBox(信息提示框),QErrorMessage(错误提示框),QProgressDialog(进度提示框)
    • 高级控件:

      • 容器控件:QToolBox,QDialogButtonBox,QGroupBox,QMdiSubWindow
      • 结构控件:QMainWindow,QTabwidget,QStackedWidget,QSplitter,QDockWidget
      • 滚动控件:QTextBrowser,QScrollArea,QAbstractItemView,QMdiarea,QGraphicsView
      • 辅助控件:QFocusFrame,QSizeGrip,QDesktopWidget
      • 其它控件

    在 QtDesigner 左侧的 “WidgetBox” 工具栏中,将常用的控件按类别进行分组。用鼠标将工具栏中的控件图标拖拽到 QtDesigner 中间的图形界面编辑窗口,就在图像界面创建了一个所选择的控件。

    在这里插入图片描述



    2. 按钮控件

    2.1 按钮控件简介

    按钮是最常用的控件类型。

    在 QtDesigner 左侧的 “WidgetBox” 工具栏中的"Buttons" 组,设有多种不同类型的按钮控件:PushButton(按键按钮),QToolButton(工具按钮),QRadioButton(单选框),QCheckButton(多选框),QCommandLinkButton(连接命令的按钮)。QDialogButtonBox(标准按钮盒)提供一系列标准按钮,相当于按钮控件的组合。

    按钮控件的常用属性:

    • text:显示文本
    • icon:设置图标
    • iconSize:图标大小
    • shortcut:设置快捷键
    • checkable:设置是否自动切换按钮
    • checked:设置默认选中状态
    • autoRepeat:设置是否会在用户按下时自动重复
    • autoExclusive:设置是否启用自动排他性(设置多选框)

    按钮控件的信号触发条件:

    • clicked():当按钮被第一次按下然后释放时发出信号
    • clicked(bool):当按钮被第一次按下然后释放时发出信号,并将当前状态传递给外界
    • pressed():当鼠标光标在按钮内时,按下鼠标左键发出信号
    • released():当释放鼠标左键时发出信号
    • toggled(bool):按钮的状态发生变化时发出信号,并将当前状态传递给外界

    按钮控件常用的的模式/状态:

    • 可用或不可用,禁用时按钮变灰
    • 标准按钮,开关按钮或菜单按钮
    • 打开或关闭(仅用于开关按钮)
    • 默认状态或正常状态
    • 是否自动重复
    • 是否处于按下状态

    用鼠标将工具栏中的按钮控件拖拽到 QtDesigner 中间的图形界面编辑窗口,就在图像界面创建了一个按钮控件。如下图所示,我们在图形界面 uiDemo5.ui 的左侧,创建了几种不同的按钮控件。

    在这里插入图片描述


    2.2 按键按钮(QPushButton)

    QPushButton(按键按钮)是最常用的按钮,按下(或者单击)按钮可以执行某个操作或回答问题,例如:确定,应用,取消,关闭,是,否和帮助。

    按钮控件通常显示一个文本标签(text),可以为按钮选择一个图标(icon),还可以选择设置快捷键(shortcut)。

    按键按钮的上述属性,都可以在 “属性编辑器” 中相应的属性行中进行编辑修改。

    当按键按钮被鼠标或快捷键激活时,按钮会发出 clicked() 信号,可以通过连接槽函数来触发特定的操作。


    2.3 其它按钮

    QToolButton(工具按钮)常用于工具栏, 通常在创建 QAction 实例时创建。工具按钮通常显示一个图标,可以快速访问特定的命令或选项。

    QRadioButton(单选框)是一个带有文本标签的单选框,可以打开(选中)或关闭(未选中)。单选框被选中或者清除时,都会发出 “toggled()” 信号,可以通过连接槽函数来触发特定的操作。

    QCheckButton(多选框)是一个带有文本标签的复选框,除了可以打开(选中)或关闭(未选中),还提供了半选状态(可选项)。复选框被选中或者清除时,都会发射 “stateChanged()” 信号,可以通过连接槽函数来触发特定的操作。

    单选框定义了“多选一”的选择,而复选框提供的是“多选多”的选择。

    QCommandLinkButton(连接命令的按钮)外观像一个扁平化的 QPushButton,并且自带了一个向右的图标,其用途类似于类似于单选按钮,用于一组互斥选项之间进行选择。

    QDialogButtonBox(标准按钮盒)提供一系列标准按钮,可以水平或垂直布置,常用于对话框和消息框。 Qt 定义的标准按钮包括:Yes、No、OK、Cancel、Ignore、Open、Save、Close、Apply、Help 等等,用户可以自定义添加。



    3. 输入控件

    3.1 输入控件简介

    在 QtDesigner 左侧的 “WidgetBox” 工具栏中的"Input Widget" 组,设有多种不同类型的输入控件,例如:
    文本输入控件:QlineEdit(单行输入)、QTextEdit(多行输入)、QPlainTextEdit(普通多行输入);
    数字输入控件:QSpinBox(整型数据输入)、QDoubleSpinBox(浮点数据输入);
    调节输入控件:QAbstractSpinBox(步长调节输入)、QDateEdit(日期输入)、QTimeEdit(时间输入)、QDateTimeEdit(日期和时间输入)。

    用鼠标将工具栏中的输入控件拖拽到 QtDesigner 中间的图形界面编辑窗口,就在图像界面创建了一个按钮控件。如前图所示,我们在图形界面 uiDemo5.ui 的中间和右侧,创建了几种不同的输入控件。


    3.2 文本输入控件

    单行文本输入框(QlineEdit)

    QLineEdit 控件是一个单行文本编辑器, 允许用户输入和编辑单行文本,并支持撤消、重做、剪切、粘贴及拖放功能。

    QLineEdit 控件的属性、信号、函数较多,并支持密码输入方式、文本框自动补全,在次不作详细介绍,有兴趣的读者可以查看相关文档和例程。

    多行文本输入框(QTextEdit)

    QTextEdit 控件是一个 “所见即所得” 的多行富文本编辑器, 允许用户输入和编辑多行文本,并支持HTML4 标签子集,可以加载纯文本和富文本的文件,适用于编辑和浏览大型的富文本文件。

    QTextEdit适用于段落和字符。可以显示图像,列表和表格。如果文本太大而无法在文本编辑的视口中查看,则会出现滚动条。

    TextEdit不仅可以显示文本,还可以显示HTML文档

    普通多行输入(QPlainTextEdit)

    QPlainTextEdit 控件是一个多行的纯文本编辑器,允许用户输入和编辑多行纯文本,不支持表格或嵌入帧。针对纯文本的处理进行了优化,可以处理更大的文档和更快速的响应。


    3.3 调节输入控件

    步长调节输入(QAbstractSpinBox)

    QAbstractSpinBox 将所有步长调节器的通用的功能抽象出了一个父类,也可以直接实例化使用。QAbstractSpinBox包含了一个QLineEdit和两个QPushbutton,数据的更改可以通过点击按钮或使用键盘输入。

    日期和时间输入(QDateEdit/QTimeEdit/QDateTimeEdit)

    QDateEdit 控件用于编辑日期,QTimeEdit 控件用于编辑时间,QDateTimeEdit同时编辑日期时间的控件。可以使用键盘上的上下键头按钮来增加或减少日期、时间。

    整型数字调节框(QSpinBox)

    QSpinBox 是一个计数器控件,允许用户选择一个整数通过上下按键递增或者递减,也可以直接输入整数的数值。默认取值范围为 0-99,每次调节的步长为 1。

    浮点数字调节框(QDoubleSpinBox)

    QDoubleSpinBox 是浮点数据计数器控件,用于处理浮点数值。默认精度为 2位小数。-



    4. Python 应用程序调用图形界面

    在 QtDesigner 将设计的图形界面保存为 uiDemo5.ui,运行 PyUIC 将选中的 .ui 文件转换为 .py 文件,在该路径生成 uiDemo5.py 文件。

    我们编写一个主程序调用设计的图形界面 uiDemo5.py,就可以完成一个图形界面应用程序。

    # GUIdemo5.py
    # Demo5 of GUI by PyQt5
    # Copyright 2021 youcans, XUPT
    # Crated:2021-10-12
    
    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox
    from uiDemo5 import Ui_MainWindow  # 导入 uiDemo5.py 中的 Ui_MainWindow 界面类
    
    class MyMainWindow(QMainWindow, Ui_MainWindow):  # 继承 QMainWindow 类和 Ui_MainWindow 界面类
        def __init__(self, parent=None):
            super(MyMainWindow, self).__init__(parent)  # 初始化父类
            self.setupUi(self)  # 继承 Ui_MainWindow 界面类
    
        def trigger_actHelp(self):  # 动作 actHelp 触发
            QMessageBox.about(self, "About",
                              """数字图像处理工具箱 v1.0\nCopyright YouCans, XUPT 2021""")
            return
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)  # 在 QApplication 方法中使用,创建应用程序对象
        myWin = MyMainWindow()  # 实例化 MyMainWindow 类,创建主窗口
        myWin.show()  # 在桌面显示控件 myWin
        sys.exit(app.exec_())  # 结束进程,退出程序
    

    由于本文主要介绍常用的基本控件,在程序中尚未将控件的信号连接槽函数,因此运行程序 uiDemo5.py 时,其中的一些按钮控件在点击后并没有触发操作。

    在下一篇文章中,我们将介绍 PyQt5 中的页面布局。

    【本节完】


    版权声明:

    欢迎关注『Python 小白从零开始 PyQt5 项目实战 @ Youcans』 原创作品

    原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/120665014)

    Copyright 2021 youcans, XUPT

    Crated:2021-10-12


    欢迎关注『Python 小白从零开始 PyQt5 项目实战 @ Youcans』系列,持续更新中
    Python 小白从零开始 PyQt5 项目实战(1)安装与环境配置
    Python 小白从零开始 PyQt5 项目实战(2)菜单和工具栏
    Python 小白从零开始 PyQt5 项目实战(3)信号与槽的连接
    Python 小白从零开始 PyQt5 项目实战(4)基本控件

    展开全文
  • pycharm创建pyqt5项目

    2022-01-08 15:47:06
    文章目录一、安装PyQt5PyQt5-tools二、添加QtDesigner和PyUIC工具 一、安装PyQt5PyQt5-tools 使用命令行cmd安装pyqt5 pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple 使用命令行cmd安装qt...
  • Python 小白从零开始 PyQt5 项目实战(5)布局管理

    千次阅读 多人点赞 2021-10-12 19:55:45
    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5项目实战。 什么叫从零开始?从软件安装、环境配置开始。不跳过一个细节,不漏掉一行代码,不省略一个例图。 布局管理就是管理图形窗口中...
  • 本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5项目实战。 什么叫从零开始?从软件安装、环境配置开始。不跳过一个细节,不漏掉一行代码,不省略一个例图。 本文详细解读通过 QtDesigner ...
  • 本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5项目实战。 什么叫从零开始?从软件安装、环境配置开始。不跳过一个细节,不漏掉一行代码,不省略一个例图。 本文讲解信号与槽的连接机制,...
  • pyqt5有input界面,按钮,表格,连接数据库登陆,查找显示数据到表格中
  • 最近研究PyQt5,按课件写了个简单的,适合新手,内容包括如何用Pyinstaller打包,解决无法加载图片资源问题附教程源码,以及数据库操作附源码
  • Python-GUI编程(12.04)控件学习代码
  • PyQt5开发实战

    2019-02-11 17:53:09
    PyQt 5是对Qt所有类的Python封装,既可以利用Qt的强大功能,也可以利用Python丰富的生态圈,同时能够结合Python简洁的语法进行操作,其结果就是使用PyQt 5可以高效、简单地开发出自己想要的程序。
  • 我理解的一般性的一个完整项目会包含代码、资源文件、本地数据库,我的目标是打包成一个exe文件,最终结果尽可能简洁。为达到这样一个目的,需要以下几个步骤: 1. 项目中引用资源、调用本地数据库的路径的设置要有...
  • 微博工具 微博工具箱
  • 本课程属于《Python大讲堂》系列课程,全面深入讲解了PyQt5的核心API以及扩展应用。PyQt5视频培训课程的主要内容:1. Qt Designer2. PyQt5基本窗口控件3. PyQt5高级组件4. PyQt5布局管理5. PyQt5信号与槽6. PyQt5...
  • 非常好的github上关于pyqt5的示例代码,只要你pip insatall pyqt5之后,就能直接运行
  • PyQt5项目开发笔记

    2018-12-18 00:24:17
    QDialog 中模态与非模态对话框 模态与非模态对话框 模态对话框 模态对话框是只能首先对其进行操作后才能操作其他窗口的对话框。实质是父线程在子线程创建这个模态对话框后,父线程阻塞,等待子线程的操作。...
  • 本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5项目实战。不跳过一个细节,不漏掉一行代码,不省略一个例图。 本系列从软件安装、环境配置开始,介绍了基本应用:菜单和工具栏、基本控件,...
  • } } 3 PyQT5打包 两个注意点 使用虚拟环境 使用如下所示的.spec文件 # -*- mode: python ; coding: utf-8 -*- import os spec_root = os.path.abspath(SPECPATH) # 这行与spec_root变量被使用的那一行比较重要 ...
  • 项目编程基本流程 创建项目 选择Create New Project,输入项目名称TemplatePrint,见下图,注意要Base interepter要选择系统中的python,并勾选...不勾选Inherit global site-pakages的话,有时系统会出现找不到pyQT...
  • Pyinstaller打包1.python3.5下载链接:https://www.python.org/ftp/python/3.5.0/python-3.5.0-amd64.exe2.PyQt5.6下载链接:...
  • Python 小白从零开始 PyQt5 项目实战(6)切换窗口的堆叠布局 本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5项目实战。 软件项目中经常需要多种不同的图形界面,以适应不同的任务场景。堆...
  • 本例子,给了一个一个连接数据库,加密,自动化界面生成的案列
  • PyQt5项目:记事本

    千次阅读 热门讨论 2021-03-19 14:21:51
    PyQt5项目:记事本简介主界面 简介 根据 《快速掌握PyQt5》第二十三章 主窗口QMainWindow 进行重组的一个内容 主界面 def ui_init(self): self.setWindowTitle('记事本') self.resize(700,400) self.text = ...
  • 适合初学者或多年开发者参考
  • 本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5项目实战。 折叠侧边栏是指可折叠的多级菜单式状态栏,位于于窗口的左右侧边,可以实现软件功能或目录的导航。 本文详细介绍用 QTreeWidget ...
  • PyQt5项目:重命名

    千次阅读 2021-02-24 08:34:07
    PyQt5项目:重命名简介桌面建设主要功能信号与槽样式全部代码 简介 结合学习的PyQt5,弄点小项目,做次记录。 此项目是将一个文件夹下所有文件重命名,不过功能单一,重命名规则只有数字命名,并且文件类型只能从...
  • PyQt5项目:抠图

    千次阅读 2021-02-22 11:54:17
    PyQt5项目:抠图简介1.获取API2.API使用方法3.可视化桌面制作4.逻辑实现5.美化6.信号与槽绑定7.全部代码8.界面展示 简介 结合学习的PyQt5,弄点小项目,做次记录。 此项目是使用了removebg的API,进行实现抠图功能,...
  • 本文通过python3+pyqt5改写实现了python Qt gui 编程变成15章的excise例子。 #!/usr/bin/env python3 import os import sys from PyQt5.QtCore import (QFile, QVariant, Qt) from PyQt5.QtWidgets import ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,247
精华内容 4,498
关键字:

pyqt5项目