Python QtGUI与数据可视化编程(一)想写GUI程序?来试试Python Qt吧!

1. PyQt开发环境搭建

1.1 Python安装

点击链接直接下载Python3.10版本:https://www.python.org/ftp/python/3.10.4/python-3.10.4-amd64.exe

下载太慢?微信搜索“五维星空”,发送“python安装包”获取网盘下载地址。

下载后双击启动安装程序即可(记得勾选add to path)。

1.2 PyQt5安装

打开cmd执行pip3 install pyqt5

又慢?换源大法送上。如下命令是替换为中科大的源。

pip install pip -U #升级
pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/ #换源

1.3 Qtdesigner安装

这个东西主要是用来设计界面的,没错,就是拖拽控件生成界面,之后执行命令将其转换成Python代码。(喜欢手敲的大佬可以跳过这个工具,over~)

点击链接直接下载Qtdesigner Windows版本:https://build-system.fman.io/static/public/files/Qt%20Designer%20Setup.exe

下载后双击启动安装程序即可。

2. PyQt开发基础

2.1 第一个程序——HelloWorld

基础不牢、语法不会?**问题不大。毛主席都说了,实践是检验真理的唯一标准。**来写一个HelloWorld吧

import sys
from PyQt5 import QtCore, QtGui, QtWidgets

if __name__ == '__main__':
    # 创建APP
    app = QtWidgets.QApplication(sys.argv)
    # 创建窗体
    mainFrame = QtWidgets.QWidget()
    # 设置窗体大小
    mainFrame.resize(800, 200)
    # 设置窗体标题
    mainFrame.setWindowTitle("HelloWorld")
    # 将Label组件绑定到mainFrame上,并设置内容
    labelHello = QtWidgets.QLabel(mainFrame)
    labelHello.setText("Hello World!By 五维星空~")
    # 设置字体
    font = QtGui.QFont()
    # 字体加粗
    font.setBold(True)
    # 字体大小
    font.setPixelSize(26)
    labelHello.setFont(font)
    # 计算Label的合适大小并返回QSize对象
    size = labelHello.sizeHint()
    # 设置labelHello的坐标以及宽高
    labelHello.setGeometry(250, 100, size.width(), size.height())
    # 运行时显示对话框
    mainFrame.show()
    # 启动应用程序
    sys.exit(app.exec_())

运行结果:

image-20220604100945081

2.2 使用QtDesigner设计窗体

​ 在2.1节我们一起写了一个简单的HelloWorld程序(没搞懂?问题不大,后面敲着敲着就懂了😉),本节我们使用QtDesigner来做同样的事情。在此之前,我们先通过下面这幅图简单了解一下QtDesigner的界面。

image-20220604104550848

好了,接下来正式开始本节的内容。

  1. 打开QtDesigner,按照下图创建程序。

    image-20220604101808796

  2. 找到windowTitle属性,输入窗口标题

    image-20220604101951714

  3. 找到Label组件,拖拽至窗体位置

    image-20220604102127120

  4. 双击进入编辑模式,输入HelloWorld! By 五维星空~,调整至合适大小。

    image-20220604102301486

  5. 在右侧对象浏览器中选中label,之后在属性编辑器中找到font属性,选择合适的字体(咳咳,商用注意小心字体侵权~),设置字体大小后记得调整Label大小。

    image-20220604102742568

    可以商用的字体(口水话安排上🤔:搜索结果来自互联网,“五维星空”不对该结果的准确性负责~):

    1. 思源字体,可以免费商用的有:思源黑体,思源宋体,思源柔黑体。

    2. 方正字体,方正类字体可以免费商用的有:方正仿宋(简,繁),方正黑体(简,繁),方正楷体( 简繁),方正书宋(简,繁)。

  6. 额,忘了调整窗体大小,补上补上~

    image-20220604103331425

  7. 调整Label大小

    image-20220604103717693

  8. Ctrl+S保存生成helloWorld.ui文件即可。

  9. helloWorld.ui文件目录下打开cmd,输入pyuic5 -o ui_HelloWorld.py helloWorld.ui回车后生成python文件。

    pyuic5是PyQt5的工具软件,在1.2小节安装PyQt5的时候它已经安装在D:\Software\Python310\Scripts路径下(注意这是我本地的路径,你的路径应该是你的Python安装位置。)

    image-20220604105000176

    image-20220604105056282

    常见问题:

    1. pyuic5报命令不存在?

      小老弟,是不是忘了加环境变量?添加之后记得重启cmd窗口。

      image-20220604105612257

    2.3 使用QtDesigner设计的界面

    ​ 在2.1节我们使用QtDesigner生成了一个HelloWorld程序并将它转换成了python代码,本节我们来学习如何使用这份代码。是不是有小伙伴已经运行代码了发现无事发生?😄不要慌,我们接着往下看。我们先简单了解一下这份文件的内容。

    # -*- coding: utf-8 -*-
    
    # Form implementation generated from reading ui file 'helloWorld.ui'
    #
    # Created by: PyQt5 UI code generator 5.15.6
    #
    # 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):
        '''注意,此处继承的是object对象而不是QWidget对象'''
        def setupUi(self, Form):
            '''设置ui的函数,Form为程序最外层的组件容器对象'''
            Form.setObjectName("Form") # 设置Form对象名称
            Form.resize(800, 200) # 设置大小
            self.label = QtWidgets.QLabel(Form) # 在Form上定义一个Label
            self.label.setGeometry(QtCore.QRect(250, 100, 420, 35)) # 定义Label位置
            font = QtGui.QFont() # 定义字体
            font.setFamily("楷体")
            font.setPointSize(26)
            font.setBold(True)
            font.setWeight(75)
            self.label.setFont(font) # 设置Label字体
            self.label.setTextFormat(QtCore.Qt.AutoText) # 格式化处理
            self.label.setObjectName("label") # 设置Label对象名称
    
            self.retranslateUi(Form) # 自定义方法
            QtCore.QMetaObject.connectSlotsByName(Form) # 通过名称关联信号与插槽
    
        def retranslateUi(self, Form):
            '''设置Form的UI属性'''
            _translate = QtCore.QCoreApplication.translate
            Form.setWindowTitle(_translate("Form", "HelloWorld"))
            self.label.setText(_translate("Form", "HelloWorld! By 五维星空~"))
    

    怎么样?是不是跟咱们手写的代码很类似,里面关于信号与插槽部分后面章节会讲,大家只需要大致了解这份文件的风格即可(QtDesigner会有一个继承object的类进行了ui的一些设置)。

    常见的有三种方式使用这份代码文件。

    1. 方式一:直接法(不推荐)

      import sys
      
      from PyQt5 import QtCore, QtGui, QtWidgets
      from ui_HelloWorld import Ui_Form
      
      if __name__ == '__main__':
          app = QtWidgets.QApplication(sys.argv)
          container = QtWidgets.QWidget()
          form = Ui_Form()
          form.setupUi(container)  # 将最外层组件容器对象传入
          container.show()
          sys.exit(app.exec_())
          
      

      缺点:耦合性太高。

    2. 方式2:多继承(不推荐)

      import sys
      from PyQt5.QtWidgets import QApplication, QWidget
      from ui_HelloWorld import Ui_Form
      class MyWidget(QWidget, Ui_Form):
          """多继承"""
      
          def __init__(self):
              # 在多继承时,super()的得到的是第一个基类,在此处就是QWidget。
              super().__init__()  # 调用父类构造函数,创建窗体。
              self.labTip = "多继承"  # 新定义一个变量
              self.setupUi(self)  # 将当前类(QWidget的子类)传入
              self.label.setText(self.labTip)  # 设置label内容
      
      if __name__ == '__main__':
          app = QApplication(sys.argv)
          container = MyWidget()
          container.show()
          sys.exit(app.exec_())
      
      

      缺点:MyWidget自己的属性和Ui_Form的属性混在一起了,不易区分。

    3. 方式3:单继承(推荐

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget
    from ui_HelloWorld import Ui_Form
    class MyWidget(QWidget):
        """单继承"""
        def __init__(self, parent=None):
            super().__init__(parent)  # 调用父类构造函数,创建窗体
            self.__ui = Ui_Form()  # 创建ui对象
            self.__ui.setupUi(self)  # 设置父窗体
            self.labTip = "单继承"  # 自定义属性
            self.__ui.label.setText(self.labTip)  # 设置ui内的属性
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        container = MyWidget()
        container.show()
        sys.exit(app.exec_())
    

    优点:MyWidget自己的属性和Ui_Form的属性易区分。

    字体显示有问题的小伙伴,请将ui转的python文件中的font.setPointSize(26)改为font.setPixelSize(26)。QtDesigner中没有setPixelSize属性,应该是QtDesigner和python版本不一致问题导致的吧,具体原因没有深究,有兴趣的小伙伴可以评论区讨论哦。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: PythonQt GUI都是非常流行的编程工具,而数据编程则是一个非常热门的领域。因此,结合这三者,Python Qt GUI数据编程完整版PDF可以帮助开发人员更好地了解和掌握这个领域的知识和技能。 Python是一种解释性语言,具有极高的可读性和易于学习的特点,因此成为了数据编程中广泛使用的语言之一。而Qt GUI是一个用C++编的跨平台开发框架,其也提供了Python的绑定,因此可以轻松地使用Python进行GUI编程数据编程是通过将数据转换为图形形式,让用户更容易理解和分析数据的过程。PythonQt GUI可以与数据工具如Matplotlib、Seaborn、Plotly等集成使用,在数据方面提供丰富的功能和工具,方便开发人员进行数据呈现和分析。 这本完整版PDF的优势在于它从入门到进阶都涵盖了Python Qt GUI数据编程的重要基础知识和实用技能,包括Qt GUI的界面设计、事件处理、布局管理等方面,以及数据Python库的使用、图表的设计、交互操作的实现等方面。此外,PDF中还介绍了Qt Designer等可工具的使用,使读者能够更好地理解和实践这些概念。 综上所述,Python Qt GUI数据编程完整版PDF是一本非常有价值的教材,它将这些技术整合在一起,帮助开发人员掌握这些强大的工具和技能,为他们在实践中取得更大的成功打下坚实的基础。 ### 回答2: Python是一种流行的编程语言,被广泛应用于各种领域。在图形用户界面(GUI)和数据编程方面,Python有许多优秀的工具可供选择。其中,Qt是一个开源的GUI框架,可以用于创建跨平台的图形用户界面,而PyQt则是Qt的一个Python绑定库,可以让开发者使用Python来编Qt应用程序。 在Python Qt GUI方面,本书提供了详细的介绍和实例,涵盖了Qt GUI的基础知识、应用程序的设计、事件处理、样式表、布局管理器、Qt Designer等方面。通过学习本书,读者可以了解到如何使用PythonQt来创建漂亮而功能强大的应用程序,并掌握Qt提供的各种工具和技术。 在数据编程方面,Python也有很多优秀的库可供选择。其中,matplotlib是一个流行的数据库,可以用于创建各种类型的图表,包括折线图、散点图、柱状图、饼图等等。此外,还有Seaborn、Bokeh、Plotly等其他库,可以用于创建更加高级的可效果。 本书也提供了对数据方面的详细介绍和实例,包括matplotlib的基础知识、绘图、子图、图例、颜色、标签、注释、3D绘图等方面。通过学习本书,读者可以了解到如何使用Python来绘制各种类型的图表,并掌握各种可库的使用方法和技巧。 总之,Python Qt GUI数据编程完整版pdf是一本非常实用和实用的书籍,适合要深入学习PythonGUI数据方面的读者。无论是开发桌面应用程序还是进行数据分析和可,本书都是一个非常好的学习资料。 ### 回答3: Python是一种功能强大的编程语言,广泛应用于许多领域。其中,Python在图形用户界面(GUI)和数据方面的功能尤为突出,而QT则是一个流行的GUI开发框架。因此,许多开发者使用PythonQT来编自己的GUI应用程序数据工具。 Python QT GUI数据编程完整版PDF涵盖了PythonQT的核心概念以及数据的基础知识。这本书适合初学者和有经验的开发者阅读,可以帮助他们快速入门并掌握这些技术。书中介绍了Python的基本语法和数据结构,通过这些知识来编GUI应用程序数据工具。 在书中,开发者可以学习到如何使用QT Designer设计和创建GUI界面,并使用Python代码将其连接到应用程序。此外,本书还介绍了如何使用一些流行的数据库(如Matplotlib和Seaborn)来创建各种类型的图表,帮助用户更好地理解和呈现数据。 此外, Python QT GUI数据编程完整版PDF还使用实用的案例来演示相关的技术,包括创建简单的计算器应用程序和实现数据并交互地操作数据。这些案例不仅有助于理解PythonQT的基础知识,而且可以帮助开发者在实际应用中解决实际问题。 总之,如果您是一个要学习PythonQT编程以及数据的开发者, Python QT GUI数据编程完整版PDF是一个非常好的入门资源。通过它,您可以快速掌握这些技能,并开始在自己的项目中应用它们。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值