首页 > 其他分享 >PyQt5 - 2

PyQt5 - 2

时间:2023-04-05 09:23:21浏览次数:40  
标签:控件 name 对话框 PyQt5 按钮 2.2 输入

1. 什么是控件

  • 一个程序界面上的独立元素,一块矩形区域
  • 具备不同的功能,比如:用户点击,接收用户输入,展示内容,存放其它控件等

2. 常用控件

2.1 按钮

  • QPushButton ,普通按钮
  • QCommandLinkButton , 超链接按钮
  • QRadioButton, 单选按钮
  • QCheckBox, 多选按钮

2.2 输入控件

2.2.1 纯键盘输入
  • QLineEdit,单行输入
  • QTextEdit,多行输入(普通文本,超链接,图片)
  • QPlainTextEdit, 普通文本
  • QKeySequenceEdit, 采集快捷键
2.2.2 步长调节(QAbstractSpinBox)(键盘+鼠标)

下面的按件可以手动输入或用鼠标增量调节

  • QDateTimeEdit,采集日期和时间的
    • QDateEdit , 单独的日期
    • QTimeEdit, 单独的时间
  • QSpinBox,输入整数
  • QDoubleSpinBox, 输入小数
2.2.3 组合框(下拉选择输入)
  • QComboBox, 下拉列表选择输入
    • QFontComboBox , 字体列表
2.2.4 滑块(QAbstractSlider)

用鼠标拖动

  • QDial, 圆钮旋转
  • QSlider, 滑块
  • QScrollBar,滚动条
2.2.5 橡皮筯选中
  • QRubberBand, 就是一个框选
2.2.6 对话框(QDialog)
  • QColorDialog, 颜色对话框
  • QFileDialog, 文件对话框
  • QFontDialog, 字体对话框
  • QInputDialog, 输入对话框
2.2.7 日期
  • QCalendarWidget , 日期选择

2.3 展示控件

  • QLabel ,可以展示普通文本,数字,富文本(字体,字号,颜色,超链接等),图片,GIF动画
  • QLCDNumber, 类似LCD的数字显示屏
  • QProgressBar,进度条
  • 对话框(QDialog)
    • QMessageBox,弹出一个小窗口(警告,错误等)
    • QErrorMessage,错误对话框(比如程序异常弹出的窗口,显示一些堆栈信息)
    • QProgressDialog,进度对话框

2.4 窗口控件

  • QToolBox,类似老式QQ列表
  • QDialogButtonBox,一个窗口,里面有ok, close, cancel / yes, no, Abort
  • QGroupBox, 分组,一个矩形框左上角有一个标签,里面可以放其它控件。
  • QMdiSubWindow , 子窗口
    • QMdiArea
    • QMdiSubWindow

2.5 结构控件

  • QMainWindow, 主窗口,可以放菜单栏,工具栏,状态栏等
    • 相当控件
    • QMenuBar 菜单栏
      • QMenu, 菜单
    • QToolBar 工具栏
      • QToolButton 工具按钮
    • QStatusBar 状态栏
  • QTabwidget, 标签按钮,就是有好多选项卡,可以选择的
    • QTabBar 标签(选项卡)
  • QStackedWidget,包含多个窗口,可以轮循各个窗口(类似栈)
  • QSplitter, 分割窗口
  • QDockWidget, 可以停放到上下左右位置,也可以浮动。

2.6 滚动控件(QAbstractScrollArea)

  • QTextBrowser, 文本浏览
  • QScrollArea, 滚动区域 ,比如图片太大,出现滚动条
  • QAbstractItemView
    • QColumnView, 多列
    • QHeaderView, 表头
    • QListView (列表)
      • QListWidget 列表
      • QUndoView 撤销与重做
    • QTableView, 表格
      • QTableWidget
    • QTreeView, 树结构
      • QTreeWidget
  • QMdiarea 子控件
  • QGraphicsView 用于画图

2.7 辅助控件

  • QFocusFrame 焦点控件
  • QSizeGrip 调整大小的一个控件
  • QDesktopWidget, 桌面控件,访问桌面的一些信息

2.8 其它控件

2.8.1 向导/打印
  • QWizard 向导(比如:安装软件)
    • QWizardPage 单独的一页
  • QAbstractPrintDialog 打印
    • QPrintDialog
  • QPrintPreviewDialog 打印预览
    • QPrintPreviewWidget
  • QPageSetupDialog 页面设置
2.8.2 欢迎界面
  • QSplashScreen 软件打开之前的界面
2.8.3 功能性控件
  • QVideoWidget 放视频
    • QCameraViewFinder 相机
  • QWebEngineView 浏览器

3. 类继承

不同的控件都有相同点(共性),可以抽取出来放到父类里。比如:名字,矩形区域,位置,大小,设置样式等。

对于不同点由不同的子类单独实现,比如:展示,输入,交互,容器,框架等

继承关系:QObject -> QWidget -> (各类控件) ,每类控件里有具体控件。

可以用函数打印一下继承关系:

def trace_inherit(obj, level=0):
    for sub in obj.__subclasses__():
        class_name = re.findall(r'\b\w+\b', str(sub))[-1]
        print(f"{'    ' * level}-> {class_name}")
        if len(sub.__subclasses__()) > 0:
            trace_inherit(sub, level=level + 1)

比如打印可视化控件基类QWidget获取的继承结构如下:

-> QAbstractButton
    -> QCheckBox
    -> QPushButton
        -> QCommandLinkButton
    -> QRadioButton
    -> QToolButton
-> QFrame
    -> QAbstractScrollArea
        -> QAbstractItemView
            -> QColumnView
            -> QHeaderView
            -> QListView
                -> QListWidget
                -> QUndoView
                -> QHelpIndexWidget
            -> QTableView
                -> QTableWidget
            -> QTreeView
                -> QTreeWidget
                -> QHelpContentWidget
        -> QGraphicsView
        -> QMdiArea
        -> QPlainTextEdit
        -> QScrollArea
        -> QTextEdit
            -> QTextBrowser
    -> QLCDNumber
    -> QLabel
    -> QSplitter
    -> QStackedWidget
    -> QToolBox
-> QAbstractSlider
    -> QDial
    -> QScrollBar
    -> QSlider
-> QAbstractSpinBox
    -> QDateTimeEdit
        -> QDateEdit
        -> QTimeEdit
    -> QDoubleSpinBox
    -> QSpinBox
-> QCalendarWidget
-> QDialog
    -> QColorDialog
    -> QErrorMessage
    -> QFileDialog
    -> QFontDialog
    -> QInputDialog
    -> QMessageBox
    -> QProgressDialog
    -> QWizard
    -> QAbstractPrintDialog
        -> QPrintDialog
    -> QPageSetupDialog
    -> QPrintPreviewDialog
-> QComboBox
    -> QFontComboBox
-> QDesktopWidget
-> QDialogButtonBox
-> QDockWidget
-> QFocusFrame
-> QGroupBox
-> QKeySequenceEdit
-> QLineEdit
-> QMainWindow
-> QMdiSubWindow
-> QMenu
-> QMenuBar
-> QOpenGLWidget
-> QProgressBar
-> QRubberBand
-> QSizeGrip
-> QSplashScreen
-> QSplitterHandle
-> QStatusBar
-> QTabBar
-> QTabWidget
-> QToolBar
-> QWizardPage
-> QSvgWidget
-> QQuickWidget
-> QPrintPreviewWidget
-> QGLWidget
-> QVideoWidget
    -> QCameraViewfinder
-> QHelpFilterSettingsWidget
-> QHelpSearchQueryWidget
-> QHelpSearchResultWidget
-> QDesignerActionEditorInterface
-> QDesignerFormWindowInterface
-> QDesignerObjectInspectorInterface
-> QDesignerPropertyEditorInterface
-> QDesignerWidgetBoxInterface
-> QAxWidget


查看某一个类的父类链:

def trace_super(obj):
    box = []
    for name in obj.__mro__:
        print(name)
        class_name = re.findall(r'\'(.*)\'', str(name))[-1]
        box.append(class_name)
    box.reverse()
    print(" <- ".join(box))

结果:

object <- sip.simplewrapper <- PyQt5.QtGui.QPaintDevice <- sip.wrapper <- PyQt5.QtCore.QObject <- PyQt5.QtWidgets.QWidget <- PyQt5.QtWidgets.QAbstractButton <- PyQt5.QtWidgets.QPushButton

标签:控件,name,对话框,PyQt5,按钮,2.2,输入
From: https://www.cnblogs.com/three-sheep/p/17288824.html

相关文章

  • PyQt5 - 1
    一、安装pipinstallPyQt5-ihttps://mirrors.aliyun.com/pypi/simple/出现错误安装下面的工具库:ERROR:FailedbuildingwheelforPyQt5-sipwgethttps://aka.ms/vs/17/release/vs_BuildTools.exe一、基本程序结构(一)导入相关模块(二)创建应用程序(三)控件的操作(四)执......
  • PyQt5学习 (4)--QAbstractButton(下)
    QAbstractBUtton:  所有按钮控件的基类  提供按钮的通用功能  继承自QWidget  属于抽象类别,不能直接去使用,必须借助于子类(除非你觉得子类不够用,想自定义一个按......
  • 使用PyQt5动态导入ui文件
    导库fromPyQt5.uicimport*核心代码self.ui=loadUi(r'xxxx文件路径xxxx',self)简单代码实例importsysfromPyQt5.uicimport*fromPyQt5.Q......
  • 【项目实战】基于Pthon+PyQt5的GUI点名程序(附完整源码)
    1、项目说明基于python+PyQt5的GUI点名程序项目实战项目需要安装pycharm社区版或专业版都可,以及项目所需的所有模块项目需要安装pyqt5、pywin32及其他一些模块安装命......
  • pyqt5 qt.ui文件转换为.py文件报错one input ui-file must be specified 解决方法
    我的原因是配置额外工具的时候忘记填写实参了,。,。,还有的老哥可能是.ui文件有空格,查资料的时候发现好像文件名有空格也不行"名称":这里可以自定义的"程序":选择的是"p......
  • 【项目实战】基于Python+PyQt5的GUI点餐系统(附完整源码)
    1、项目说明基于python+PyQt5的GUI点餐系统项目实战项目需要安装pycharm社区版或专业版都可,以及项目所需的所有模块项目需要安装PyQt5及其他一些模块(详见项目所需模块......
  • 让Python PYQT5使用微软流畅设计体系UI
    PyQt-Fluent-Widgets项目地址: https://github.com/zhiyiYo/PyQt-Fluent-Widgets总所周知,Python一般的UI(比如Tkinter)肥肠的丑陋,肥肠的不现代化。蛋是现在微软有流畅设......
  • 量化系统 GUI 库 PyQt5 基础以及使用技巧(上)
    量化系统GUI库PyQt5基础以及使用技巧(上)python流行的图形界面库PyQt:一个基于C++库Qt的Python库,提供了丰富的GUI工具和高度可定制的UI设计,也是很多商业应用程序的......
  • Pycharm配置pyqt5
    关于PyQt5,在pycharm上的安装步骤及使用技巧(最重要)https://www.cnblogs.com/pywjh/p/9835931.html importsysfromPyQt5.QtWidgetsimportQApplication,QMainWindowf......
  • PyQt5 自然语言处理学习笔记(一)
    前言最近想将自然语言处理的项目进行可视化,尽量还是使用回Python语言,因此打算用PyQT来实现相应的功能。入门案例一个简单的自然语言处理的demo,使用PyQt框架,该demo可以读......