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