Qt-下拉列表框,计数器,滑动条

QCombox

QCombox是一个集按钮与下拉选项于一体的控件,因此又被称为下拉列表框。
其主要方法与信号如下
在这里插入图片描述
实例

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 Example")
        self.resize(300,90)
        layout=QVBoxLayout()
        self.lbl = QLabel("")#建立一个空标签

        self.cb=QComboBox()
        self.cb.addItem('C')
        self.cb.addItem('C++')#单个添加
        self.cb.addItems(['Java','Python','C#'])#元组添加
        self.cb.currentIndexChanged.connect(self.selectionchange)#单击选择框仅当所选内容前后有变化时触发此信号
        layout.addWidget(self.cb)
        layout.addWidget(self.lbl)
        self.setLayout(layout)

    def selectionchange(self,i):#i表示传递过来的转中选选项的序号
        self.lbl.setText(self.cb.currentText())#将选项文本传递给标签
        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())#currentText 当前文本,即选中的文本

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

在这里插入图片描述

QSpinBox(QDoubleSpinBox)

QSpinBox/QDoubleSpinBox是一个计数器器件,区别在于前者处理整数,后者处理浮点数,允许用户选择一个值(或者输入)通过单击,上下按钮(或键盘上下键)来增加或减少当前值默认情况下,QSpinBox取值范围)0-99,步长为1,QDoubleSpinBox精度为2位,可通过setDecimals改变
常用方法
在这里插入图片描述
当单击按钮时,该控件便发射一个valueChanged信号,可以通过value()函数获得该值

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

class SpinboxDemo(QWidget):
    def __init__(self,parent=None):
        super(SpinboxDemo, self).__init__(parent)
        self.setWindowTitle("SpinboxDemo Example")
        self.resize(300,100)
        layout=QVBoxLayout()

        self.lbl = QLabel("current value")#建立一个标签,显示当前值
        self.lbl.setAlignment(Qt.AlignCenter)#居中
        layout.addWidget(self.lbl)
        self.sp=QSpinBox()
        layout.addWidget(self.sp)
        self.sp.valueChanged.connect(self.valuechange)#值改变

        self.setLayout(layout)

    def valuechange(self):
        self.lbl.setText("current value:"+str(self.sp.value()))#将计数器当前值设置到标签文本中

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

在这里插入图片描述

QSlider

QSlider是一个水平或竖直的滑动条,用户可沿某一方向移动滑块,并将滑块位置 转移成一个合法的整数值。
下面是其基本方法在这里插入图片描述信号
在这里插入图片描述
设置水平与竖直方向直接在构造函数中设置即可

self.sp=QSlider(Qt.Horizontal)
self.sp=QSlider(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("SliderDemo Example")
        self.resize(300,100)
        layout=QVBoxLayout()

        self.lbl = QLabel("hello pyqt")#建立一个标签,显示当前值
        self.lbl.setAlignment(Qt.AlignCenter)#居中
        layout.addWidget(self.lbl)

        self.s1=QSlider(Qt.Horizontal)#水平
        self.s1.setMinimum(10)#设置最小值
        self.s1.setMaximum(50)#设置最大值
        self.s1.setSingleStep(2)#设置步长
        self.s1.setValue(20)#设置当前值
        self.s1.setTickPosition(QSlider.TicksBelow)#设置坐标位置,将其显示在下方
        self.s1.setTickInterval(10)#设置刻度间隔
        layout.addWidget(self.s1)

        self.s1.valueChanged.connect(self.valuechange)#检测滑块位置改变
        self.setLayout(layout)

        self.setLayout(layout)

    def valuechange(self):
        print("current value:"+str(self.s1.value()))#将当前值输出
        size = self.s1.value()
        self.lbl.setFont(QFont("Arial",size))#设置字体和字号

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值