5 - PyQt5 控件介绍

5 - PyQt5 控件介绍

1、什么是控件

一个程序界面上的各个独立的元素(表现为一块矩形区域),具备不同的功能,比如:用户点击、接收用户输入、展示内容、存放其他控件…

2、基础控件:
2.1 按钮

QPushButton:仅仅用来被点击。

QCommandLinkButton:加上详情。

QRadioButton:单选按钮,可选择某一单独菜单。

QCheckBox:复选框,可以同时选择多个。

2.2 输入控件
  • 纯键盘输入

    QLineEdit:单行输入框。

    QTextEdit:多行输入框,不仅可以输入文本,还可以输入超链接、图片等富文本

    image-20210911145201780

    QPlainTextEdit:普通多行文本。

    image-20210910194047294

    QKeySequenceEdit:采集快捷方式(快捷键)。

  • 步长调节(QAbstractSpinBox) (键盘+鼠标)

    QDateTimeEdit:采集日期时间。

    QDateEdit:单独的日期。

    QTimeEdit:单独的时间。

    QSpinBox:输入整型数字。

    QDoubleSpinBox:输入浮点型数字。

  • 组合框(下拉选择输入)

    QComboBox:常用于填地址。

    QFontComboBox:Font 是字体的意思。

  • 滑块(QAbstractSlider)(鼠标)

    QDial:旋钮状的滑块。

    QSlider:拖动式的滑块。

    QScrollBar:滚动条(长文本常用)。

  • 橡皮筋选中

    QRubberBand:直接拉一个框来选中。

  • 对话框(QDialog)

    QColorDialog:选择颜色的对话框。

    image-20210910205043823

    QFileDialog:选择文件的对话框。

    image-20210910205354958

    QFontDialog:选择字体的详细设置的对话框。

    QInputDialog:选择颜色的对话框。

  • 日期

    QCalendarWidget:输入日期,用于生日选择或买火车票。

    QCalendarWidget

2.3 展示控件
  • QLabel

    普通文本(仅有展示作用,一般不可编辑)

    数字

    富文本(带格式的文本、超链接)

    QLabel-超链接

    图片

    QLabel-动画(.gif)

  • QLCDNumber:像 LCD 灯一样。

  • QProgressBar:进度条。

  • 对话框(QDialog)

    QMessageBox:消息框。

    image-20210910210338671

    image-20210910210350015

    image-20210910210433228

    image-20210910210445572

    image-20210910210456717

QErrorMessage:错误对话框。

QProgressDialog:进程对话框。

3、高级控件:
3.1 容器控件(承载其他控件)

QToolBox:承载按钮,例如联系人列表。

QDialogButtonBox:承载对话框。

image-20210911085310238

QGroupBox:把控件划分到组里面,一个组有一个边框,每组有个组头。

image-20210911085323763

QMdiSubWindow:QMdiArea和QMdiSubWindow,右边可以放很多个小窗口。

3.2 结构控件
  • QMainWindow:多个控件组合在一起,上面是菜单栏、工具栏,下面是状态栏。

image-20210911091334792

image-20210911091349006

​ 相关控件:

​ QMenuBar:菜单栏。

​ 菜单栏相关控件 QMenu:菜单。

​ QToolBar:工具栏。

image-20210911092448564

​ 工具栏相关控件QToolButton:工具按钮。

​ QStatusBar:工具栏。

image-20210911092619189

  • QTabwidget:标签控件。

    相关控件 QTabBar:

  • QStackedWidget:栈结构的界面,从一个开始一次切换。

  • QSplitter:分割窗口,各部分可调节大小 + 单独设置。
    相关控件 QSplitterHandle:

    image-20210911095235656

  • QDockWidget:一部分可悬浮停靠在周围。

3.3 滚动控件

QAbstractScrollArea

  • QTextBrowser:文本浏览器(可滚动,可定位)

  • QScrollArea:滚动区域(展示非常大的图片)

    image-20210911133309798

  • QAbstractItemView:

    QColumnView:列的视图(可以显示出两个列甚至多个列)

    QHeaderView:表头视图(常与表格连用)

    image-20210911133405443

    QListView:

    ​ QListWidget——展示列表元素

    ​ QUndoView——恢复(可撤销,也可重做)

    QTableView:
    image-20210911133614813

    ​ 相关控件:QTableWidget

    QTreeView——QTreeWidget:

  • QMdiarea:

  • QGraphicsView:

    image-20210911134717145

3.4 辅助控件
  • QFocusFrame:获取焦点(有一个边框)

    image-20210911134905869

  • QSizeGrip:(拖动窗口时右下角有点点点)

    image-20210911134916964

  • QDesktopWidget:(快速获取桌面尺寸信息)

    image-20210911134929707

3.5 其他
  • 向导/打印 (QDialog):常用于安装软件时向导页。

    QWizard:

    相关控件

    相关控件:QWizardPage(只有一页)

    image-20210911143045872

    QAbstractPrintDialog——QPrintDialog:打印对话框。
    image-20210911143119781

    QPrintPreviewDialog:打印预览。

    image-20210911143151895

    相关控件:QPrintPreviewWidget

    QPageSetupDialog:页面设置
    image-20210911143247325

  • 欢迎界面 QSplashScreen:应用在软件打开之前,加载时间太长可以播放一些动画。

  • 功能性控件

    QVideoWidget:展示视频,可以做播放器。

    ​ 相关控件:QCameraViewfinder,相机

    QWebEngineView:搜索引擎视图。

    image-20210911143551904

3、控件的继承

这部分大概介绍了 PyQt 有哪些控件、对应的类别、所能实现的功能效果。控件具有不同的功能,但也有相似之处,比如形状都是矩形,尺寸、位置都可以改。面向对象在设计整个框架的时候,把共同的特性(尺寸、位置)放在父类(基类)里面,子类具有自己的特性。先学父类,再学子类。

最基层的基类:QObject

可视化控件:QWidget 继承自 QObject。

其他子控件继承自 QWidget。

如何知道一个类有哪些子类呢?

image-20210911160937290

def getSubClasses(cls):
    for subcls in cls.__subclasses__():
        print(subcls)
        if len(subcls.__subclasses__()) > 0:
            getSubClasses(subcls)


getSubClasses(QAbstractButton)

image-20210911161006703

小技巧:想打印某个类的所有直接子类,直接 QAbstractButton.__subclasses__().print 后面回车,就可以自动补全成 print(QAbstractButton.__subclasses__()) 的形式。


课程笔记整理于网课。

作话:每天其实都有在听课,但想把一个完整的部分整理好再发博客,所以就不每天发博文了。

  • 9
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值