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日

相关文章

  • __call__用法简谈

      python一切皆对象,从是否可调用层面讲,对象又可以分为可调用对象、不可调用对象 在本篇中,类中实现__call__双下方法,即将该类的实例变为可调用对象   普通类未实现__call__的方法,实例是不可调用的,先看 1 class Valley: 2 … 3 4 5 if __name__ == ‘__main__’: 6 v = Valley…

    Python开发 2023年4月2日
    00
  • 代码坏味道(一)

    1、神秘命名   模块、类、函数、变量等的命名是编程中最难的两件事之一,正因为如此,改名可能是最常用的重构手法   对应的重构手法有:改变函数声明、变量改名、字段改名 2、重复代码   顾名思义,就是在多处看到相同的代码结构   对应的重构手法有:移动语句、提炼函数 3、过长的函数   确保函数内代码处在同一层抽象级,无须担心进程内的函数开销,提倡小函数 4…

    Python开发 2023年3月31日
    00
  • 浅用描述符

      可以理解为property方法的一种进阶,都可以用来创建一种新形式的实例属性,即在实例属性值的获取和设定上,增加额外的处理事务,such as:类型检查、验证   重写三个属性访问方法,其中__delete__方法是否重写取决需求   在类层次上引用描述符,即该类遵从描述符协议 1 class Check: 2 def __init__(self, na…

    Python开发 2023年4月2日
    00
  • 工匠回忆(一)

    不久之前看过《python工匠》,腾讯大佬朱磊写的,后来一段时间零零散散也会翻开看看,强烈推荐!!! 1、变量注释   变量与注释是最接近自然语言的东西,把变量与注释搞好,同样一段代码,却带来两种截然不同的体验   1.1、变量开辟的必要性   1.2、变量注意靠近使用   1.3、注意变量描述性要强、同时注意其长度   1.4、变量的命名要突出类型   1…

    python 2023年5月4日
    00
  • __slots__

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

    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
  • 泛型

    第一个参数类型决定执行特定的方法体 一、单分派泛函数   只对函数的第一个参数做类型检查,发现局限性太大,没什么特别的应用场景,也可能是我没用到 1 from functools import singledispatch 2 3 4 @singledispatch 5 def func(a, *args): 6 raise TypeError(“暂不支持{…

    Python开发 2023年4月2日
    00
  • 生成器的反向验证

    生成器是一种特殊的迭代器,也可以说其父类型是迭代器   1、迭代器其实也有很多点要清楚,这里先不做赘述   2、要清楚,迭代器调用iter()返回的是自身 1 def func(s, e): 2 “”” 3 生成器函数 4 :param s:起始值 5 :param e: 末值 6 :return: 7 “”” 8 num = s 9 while num &…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部