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_())