当前位置: 移动技术网 > IT编程>开发语言>Java > pyqt5讲解3:QComboBox,QSpinBox,QSlider

pyqt5讲解3:QComboBox,QSpinBox,QSlider

2020年07月20日  | 移动技术网IT编程  | 我要评论

下拉列表框QComboBox

QComboBox是一个集按钮和下拉选项于一体的控件,也称为下拉列表框。

常用的方法

addItem() 添加一个下拉选项
addItems() 从列表中添加下拉选项
Clear() 删除下拉选项中集中的所有选项
count() 返回下拉选项集合中的数目
currentText() 返回选中选项的文本
itemText(i) 获取索引为i的item的选项文本
currentIndex() 返回选中项的索引
setItemText(int index, text) 改变序号为index项的文本
常用的信号
Activated 当用户选中一个下拉选项时发射该信号
currentIndexChanged() 当下拉选项的索引发生改变时发射该信号
highlighted 当选中一个已经选中的下拉选项时,发射该信号

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class ComboxDemo(QWidget):
    def __init__(self, parent=None):
        super(ComboxDemo, self).__init__(parent)
        self.setWindowTitle("combox 例子")
        self.resize(300, 90)
        layout = QVBoxLayout()
        self.lbl = QLabel("")

        self.cb = QComboBox()
        self.cb.addItem("C")
        self.cb.addItem("C++")
        self.cb.addItems(["Java", "C#", "Python"])
        self.cb.currentIndexChanged.connect(self.selectionchange)
        layout.addWidget(self.cb)
        layout.addWidget(self.lbl)
        self.setLayout(layout)

    def selectionchange(self, i):
        self.lbl.setText(self.cb.currentText())
        self.lbl.adjustSize()

        print("Items in the list are :")
        for count in range(self.cb.count()):
            print('item' + str(count) + '=' + self.cb.itemText(count))#每个选项名称
            print("Current index", i, "selection changed ", self.cb.currentText())#当前选项

if __name__ == '__main__':
    app = QApplication(sys.argv)
    comboxDemo = ComboxDemo()
    comboxDemo.show()
    sys.exit(app.exec_())

计数器QSpinBox

QSPINBox是一个计数器控件,允许用户选择一个整数值通过单击向上向下或者按键盘上的上下键来增加减少当前显示的值,当然用户也可以输入值
在默认情况下,QSpinBox的取值范围是(0-99),每次改变的步长是1

方法 含义
setMinimum() 设置计数器的下界
setMaximum() 设置计数器的上界
setRange() 设置计数器的最大值,最小值,步长值
setValue() 设置计数器的当前值
Value() 返回计数器的当前值
singleStep() 设置计数器的步长值

每次信号改变都会发射valueChanged信号

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class spindemo(QWidget):
    def __init__(self, parent=None):
        super(spindemo, self).__init__(parent)
        self.setWindowTitle("SpinBox 例子")
        self.resize(300, 100)

        layout = QVBoxLayout()
        self.l1 = QLabel("current value:")
        self.l1.setAlignment(Qt.AlignCenter)
        layout.addWidget(self.l1)
        self.sp = QSpinBox()
        self.sp.setRange(10,100)#最小值,最大值
        self.sp.setSingleStep(10)#步长
        layout.addWidget(self.sp)
        self.sp.valueChanged.connect(self.valuechange)
        self.setLayout(layout)

    def valuechange(self):
        self.l1.setText("current value:" + str(self.sp.value()))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = spindemo()
    ex.show()
    sys.exit(app.exec_())

滑动条QSlider

方法 含义
setMinimum() 设置滑动条控件的最小值
setMaximum() 设置滑动条控件的最大值
setSingleStep() 设置滑动条控件递增/递减的步长值
setValue() 设置滑动条控件的值
value() 返回滑动条控件的值
setTickIntweval() 设置刻度间隔
setTickPosition() 设置刻度标记的位置,可以输入一个枚举值,这个枚举值指定刻度线相对于滑块和用户操作的位置。例如:QSlider.NoTicks(不会绘制任何刻度线)、QSliderTicksBothSides(在滑块的两侧绘制刻度线)、QSlider.TicksAbove(在水平滑块上方绘制刻度线)、QSlider.TicksBelow(在水平滑块下方绘制刻度线)、QSlider.TicksLeft(在垂直滑块左侧绘制刻度线)、QSlider.TicksRight(在垂直滑块右侧绘制刻度线)
信号 含义
valueChanged 当滑块的值发生改变时发射该信号
sliderPressed 当用户按下滑块时发射该信号
sliderMoved 当用户拖动滑块时发射该信号
sliderReleased 当用户释放滑块时发射该信号

水平或垂直滚动条
self.sp(Qt.Horizontal)
self.sp(Qt.vertical)

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


class SliderDemo(QWidget):
    def __init__(self, parent=None):
        super(SliderDemo, self).__init__(parent)
        self.setWindowTitle("QSlider 例子")
        self.resize(300, 100)

        layout = QVBoxLayout()
        self.l1 = QLabel("Hello PyQt5")
        self.l1.setAlignment(Qt.AlignCenter)
        layout.addWidget(self.l1)
        # 水平方向
        self.sl = QSlider(Qt.Horizontal)
        # 设置最小值
        self.sl.setMinimum(10)
        # 设置最大值
        self.sl.setMaximum(50)
        # 步长
        self.sl.setSingleStep(3)
        # 设置当前值
        self.sl.setValue(20)
        # 刻度位置,刻度在下方
        self.sl.setTickPosition(QSlider.TicksBelow)
        # 设置刻度间隔
        self.sl.setTickInterval(5)
        layout.addWidget(self.sl)
        # 连接信号槽
        self.sl.valueChanged.connect(self.valuechange)
        self.setLayout(layout)
    def valuechange(self):
        print('current slider value=%s' % self.sl.value())
        size = self.sl.value()
        self.l1.setFont(QFont("Arial", size))
if __name__ == '__main__':
    app = QApplication(sys.argv)
    demo = SliderDemo()
    demo.show()
    sys.exit(app.exec_())

电气专业的计算机萌新,写博文不容易,如果你觉得本文对你有用,请点个赞再走,谢谢。

在这里插入图片描述

本文地址:https://blog.csdn.net/kobeyu652453/article/details/107445792

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网