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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章