pyqt入门

  第一次接触pyqt是在20年刚毕业的时候,时隔两年,恰逢闲暇,正好回过头来对这个模块的知识进行一个整理,不会做系统化的整理,我打算可能会围绕之前做过的小工具对其涉及到的控件、信号和槽等知识进行简单的回忆。后面工作如果再涉及或者想到其他的,会再回来更新完善。

  pyqt5:同前面整理的kivy一样,同属于GUI开发框架的范畴,不同的是,pyqt用于桌面应用程序的开发(还有pyqt6,tkinter(python标准库自带的)有兴趣还可以注意一下)

  本篇主要安装一下三方库和三方工具(Qtdesigner,纯手写布局的话可以不用他)等

1、安装三方库、设计器

  pyqt入门

 

   pyqt入门

 2、pycharm配置(不需要设计器就可以不配置,pyuic是将设计器生成的.ui文件转换成.py文件)

  pyqt入门

   pyqt入门

  还有一个pyrcc工具是将资源文件(图片等).qrc转换成.py文件,具体配置可以自行百度

 3、要点总结

  3.1、窗口
    QWidget(通用窗口,所有控件的基类)
    QMainwindow(主窗口,带有菜单栏、工具栏、状态栏的主窗口,用于GUI开发时最常用的窗口)
    QDialog(对话框窗口)
  3.2、布局
    线性布局:
      水平布局
      垂直布局
    网格布局
    表单布局
  3.3、常用控件
    文本类控件:
      标签
      单行文本
      多行文本
      整数数字选择框
      小数数字选择框
    按钮类控件:
      Pushbutton
      toolbutton
      Radiobutton
      Checkbutton
    列表类控件:
      ComboBox
      listwidget
    容器类控件:
      GroupBox
      Tabwidget
      toolBox
      CommandlinkBox
  3.4、高级控件
    TreeView、TableView、TreeWidget、TableWidget
    Frame
    SpaceItem
  3.5、对话框
    消息对话框
    文件对话框
    输入对话框
    字体、颜色对话框
  3.6、事件驱动
    传递event参数

  3.7、信号和槽

  3.8、M/V结构

4、窥探

 1 import sys
 2 from PyQt5.QtWidgets import *
 3 
 4 
 5 class TestUi(QMainWindow):
 6     def __init__(self):
 7         super(TestUi, self).__init__()
 8         self.init_widget()
 9 
10     def init_widget(self):
11         self.setFixedSize(500, 300)
12         self.setWindowTitle("测试")
13         # self.layout = QVBoxLayout()
14         self.main_widget = QWidget()
15         self.main_layout = QHBoxLayout()
16         # self.main_widget.setFixedSize(200, 200)
17         self.main_widget.setLayout(self.main_layout)
18         self.queding = QPushButton("确定")
19         self.chaxun = QPushButton("查询")
20         self.setCentralWidget(self.main_widget)
21         self.main_layout.addWidget(self.queding)
22         self.main_layout.addWidget(self.chaxun)
23 
24 
25 if __name__ == "__main__":
26     app = QApplication(sys.argv)
27     ui = TestUi()
28     ui.show()
29     sys.exit(app.exec_())

运行界面显示:

pyqt入门

 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pyqt入门 - Python技术站

(0)
上一篇 2023年4月2日 下午4:52
下一篇 2023年4月2日

相关文章

  • 工匠回忆(三)

    接上文 7、函数   7.1、长度   7.2、圈复杂度   7.3、函数内代码确保处在同一抽象层内,主流程清晰,不存在穿插的分支   7.4、有状态的函数     7.4.1、全局变量     7.4.2、闭包函数     7.4.3、类     比较偏向于后两者   8、装饰器   装饰器和装饰器模式是两个完全不同的概念   1、三方模块wrapt的引入…

    python 2023年5月6日
    00
  • 命名元组

    1、命名元组也叫具名元组   可以通过名称来访问序列中的元素,摆脱对位置的依赖,他本身是一个工厂函数 2、应用1   实例化元组返回的类,其内存占用要比普通类实例要小的多,因为前者实例的属性不通过字典进行管理 1 from collections import namedtuple 2 3 # 返回可实例化的类 4 P = namedtuple(“人”, […

    Python开发 2023年4月2日
    00
  • __slots__

      在类的层次上定义时,python给实例采用一种更加紧凑的内部表示来管理属性,而非字典,这样,我们只被允许访问__slots__内部的属性   这样定义会带来两点好处,然后具体的实践我在工作中目前运用的还很少,后面如果发现还有什么坑,我再来补充 1、创建大量实例时节省内存 2、访问属性快 1 class Valley: 2 __slots__ = “nam…

    Python开发 2023年4月2日
    00
  • 编程思想

    三大编程思想:   POP:面向过程编程(Procedure Oriented Programming)   OOP:面向对象编程(Object Oriented Programming)   AOP:面向切面编程(Aspect Oriented Programming) 以下大部分内容引用腾讯云一位笔者,我也是进一步了解纯记录之目的。 POP ​   面向…

    Python开发 2023年4月2日
    00
  • 抽象类的子类化机制

    抽象类:可以作为顶层基类,从高层次规范编程接口 1、在abc模块中,最常见的抽象类有Iterable,我们可以用他判断一个对象是不是可迭代对象 1 from collections.abc import Iterable 2 3 4 class Valley: 5 6 def __iter__(self): 7 … 8 9 10 if __name__ …

    Python开发 2023年4月2日
    00
  • 德摩根定律

    命题逻辑里的一个法则   定义:非p或非q=非(p且q)   最近在看一本书啊《python工匠……》一个腾讯大佬写的,从这里面了解到这个东西,确实不错 1 1 # 德摩根定律 2 2 def func(): 3 3 a = 10 4 4 b = 20 5 5 if not a < 5 or not b < 10: 6 6 print(a…

    Python开发 2023年4月2日
    00
  • 在*args, **kwargs上强制规定参数的调用约定

      首先我们要知道任何关于函数调用签名的问题,都和inspect模块有着关系   这个知识点涉及到两个类:               Signature、               Parameter创建一个签名对象,这是个重点 1 from inspect import Signature, Parameter 2 3 params = [Parame…

    Python开发 2023年4月2日
    00
  • fastapi篇(一)

    fastapi是一个高性能的web开发框架 性能极高,可与 NodeJS, Go 媲美。(得益于Starlette和Pydantic)。 Starlette 是一个轻量级 ASGI 框架/工具包。它非常适合用来构建高性能的 asyncio 服务,并支持 HTTP 和 WebSockets。 官方网址:https://www.starlette.io/   P…

    python 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部