常用界面组件的使用[A]|GUI应用程序设计|PyQt5

常用界面组件的使用

我们已经介绍了PyQt5编写GUI应用程序的基本原理,本章将介绍一些常用的GUI界面设计组件的使用。

[music]1428598981[/music]

1.数据输入输出

QLineEdit

常用的输入输出字符串的组件,也可以用于输入输出数值数据,只需进行字符串与数字之间的转换

QSpinBox

专门用于输入输出整数的组件,还可以使用二进制、十六进制显示

QDoubleSpinBox

专门用于输入输出浮点数的组件


在窗体可视化设计时可以设置各个组件的属性。QSpinBox和QDoubleSpinBox都是QAbstractSpinBox的子类,具有大多数相同的属性,区别只是参数类型不同。QSpinBox和QDoubleSpinBox的主要属性如表在窗体可视化设计时可以设置各个组件的属性。QSpinBox和QDoubleSpinBox都是QAbstractSpinBox的子类,具有大多数相同的属性,区别只是参数类型不同。QSpinBox和QDoubleSpinBox的主要属性如表:

常用界面组件的使用[A]|GUI应用程序设计|PyQt5插图

在UI Designer的属性编辑器里可设置属性,一个属性一般对应于类的两个接口函数,即一个读取函数和一个设置函数。例如,QDoubleSpinBox的decimals属性,读取属性值的函数为decimals(),返回一个int数值;设置属性值的函数为setDecimals(prec),参数prec是int类型。

对于具有overload型参数的信号,只为其中的一种参数形式的信号生成槽函数时,如果不是默认参数类型,应该使用@pyqtSlot修饰符声明参数类型。在对overload型信号编写槽函数时,如果不清楚哪个是默认的信号,最好直接使用@pyqtSlot()修饰符对参数类型进行声明。

在使用QSpinBox和QDoubleSpinBox读取和设置数值时,无须做字符串与数值之间的转换,其显示效果(前缀、后缀、进制、小数位数)设置好之后就自动按照效果进行显示,这对于数值数据的输入输出是非常方便的。

2.QPushButton

QPushButton是常用的按钮组件,前面的一些示例中都是将其当作一个普通按钮使用的,为其clicked()信号编写槽函数进行响应。
QPushButton有一个checkable属性,如果设置为True, QPushButton按钮可以当作CheckBox或RadioButton使用。

QPushButton的信号clicked(bool)与clicked()是overload型信号,且clicked(bool)不是默认信号,所以需要使用修饰符@pyqtSlot(bool)进行函数参数类型说明。

QCheckBox组件一般使用clicked(bool)信号编写槽函数,复选状态可以作为参数传递给槽函数。
提示 如果窗体测试部分的程序没有特别的变化,后面在列出窗体业务逻辑类的代码时,都将省略窗体测试部分的代码。

3.QSlider和QProgressBar

在Input Widgets分组里有QSlider和QScrollBar两个滑动型输入组件,在Display Widgets分组里的QProgressBar是进度条显示组件。这三个组件都有orientation属性,可以设置为水平或垂直样式。

常用界面组件的使用[A]|GUI应用程序设计|PyQt5插图1

QSlider和QScrollBar都是从QAbstractSlider类继承来的,拥有一些相同的属性,在属性编辑器里设置后即可看到效果,这些属性如下。

  • minimum和maximum:输入范围的最小值和最大值。
  • singleStep:单步长,拖动标尺上的滑块,或按下左/右键时的最小变化数值。
  • pageStep:输入焦点在组件上时,按PgUp或PgDn键时变化的数值。
  • value:组件的当前值,拖动滑块时自动改变此值,并限定在minimum和maximum定义的范围之内。
  • sliderPosition:滑块的位置,若tracking属性设置为True, sliderPosition就等于value。
  • tracking:sliderPosition是否等同于value,如果tracking设置为True,改变value时也同时改变sliderPosition。
  • orientation:Slider或ScrollBar的方向,可以设置为水平或垂直。方向参数是枚举类型Qt.Orientation,其值包括:
    • ♦ Qt.Horizontal(水平方向);
    • ♦ Qt.Vertical(垂直方向)。
  • invertedAppearance:显示方式是否反向,若invertedAppearance设置为False,水平的Slider由左向右数值逐渐增大,否则反过来。
  • invertedControls:反向按键控制,若invertedControls设置为True,则按下PgUp或PgDn键时调整数值的方向相反。
  • 属于QSlider的专有属性有两个,分别如下。
  • tickPosition:标尺刻度的显示位置,使用枚举类型QSlider.TickPosition,其值包括:
    • ♦ QSlider.NoTicks(不显示刻度);
    • ♦ QSlider.TicksBothSides(标尺两侧都显示刻度);
    • ♦ QSlider.TicksAbove(标尺上方显示刻度);
    • ♦ QSlider.TicksBelow(标尺下方显示刻度);
    • ♦ QSlider.TicksLeft(标尺左侧显示刻度);
    • ♦ QSlider.TicksRight(标尺右侧显示刻度)。
  • tickInterval:标尺刻度的间隔值,若设置为0,会在singleStep和pageStep之间自动选择。
  • QSlider和QScrollBar最常用的一个信号是valueChanged(int),在拖动滑块改变当前值时就会发射这个信号。
  • 在QmyWidget类中定义了一个自定义槽函数do_valueChanged(int),这个槽函数的功能是根据传递来的参数value,设置为progressBar的当前值。在构造函数里有两条connect语句,即
self.ui.slider.valueChanged.connect(self.do_valueChanged)
self.ui.scrollBar.valueChanged.connect(self.do_valueChanged)

这是将窗体上slider和scrollBar两个组件的valueChanged(int)信号都与这个自定义槽函数关联,因为它们的操作响应是完全一样的。如果还是按照生成自动关联的槽函数的方法,需要为这两个组件分别生成槽函数,但是两个槽函数里的代码是完全一样的。

QProgressBar的父类是QWidget,一般用于进度显示,常用属性有以下几个。

  • minimum和maximum:最小值和最大值。
  • value:当前值,可以设定或读取当前值。
  • textVisible:是否显示文字,文字一般是百分比表示的进度。
  • orientation:可以设置为水平或垂直方向。
  • format:显示文字的格式,“%p%”显示百分比,“%v”显示当前值,“%m”显示总步数。默认为“%p%”。

版权声明:
作者:RHZ
链接:https://www.rhzhz.cn/?p=674
来源:RHZ | 用文字记录工作和学习生活
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
常用界面组件的使用[A]|GUI应用程序设计|PyQt5
常用界面组件的使用 我们已经介绍了PyQt5编写GUI应用程序的基本原理,本章将介绍一些常用的GUI界面设计组件的使用。 [music]1428598981[/music] ……
<<上一篇
下一篇>>