Pyqt-qslider-widget-signal

提供:Dev Guides
移動先:案内検索

PyQt-QSliderウィジェットとシグナル

*QSlider* クラスオブジェクトは、ハンドルを移動できる溝をユーザーに提示します。 境界値を制御するための古典的なウィジェットです。 溝上のハンドルの位置は、コントロールの下限と上限の間の整数に相当します。

スライダーコントロールは、コンストラクターで方向を指定することにより、水平または垂直に表示できます。

self.sp = QSlider(Qt.Horizontal)
self.sp = QSlider(Qt.Vertical)

次の表は、QSliderクラスの頻繁に使用されるメソッドの一部を示しています-

QSliderの最も一般的に使用される方法を以下に示します。

Sr.No. Methods & Description
1

setMinimum()

スライダーの下限を設定します

2

setMaximum()

スライダーの上限を設定します

3

setSingleStep()

増分/減分ステップを設定します

4

setValue()

コントロールの値をプログラムで設定します

5

value()

現在の値を返します

6

setTickInterval()

刻みの数を溝に入れます

7

setTickPosition()

目盛りを溝に配置します。 値は-

|QSlider.NoTicks |No tick marks |QSlider.TicksBothSides |Tick marks on both sides |QSlider.TicksAbove |Tick marks above the slider |QSlider.TicksBelow |Tick marks below the slider |QSlider.TicksLeft |Tick marks to the left of the slider |QSlider.TicksRight |Tick marks to the right of the slider

QSlider信号

Sr.No. Methods & Description
1

valueChanged()

スライダーの値が変更されたとき

2

sliderPressed()

ユーザーがスライダーのドラッグを開始したとき

3

sliderMoved()

ユーザーがスライダーをドラッグしたとき

4

sliderReleased()

ユーザーがスライダーを離したとき

valueChanged()シグナルは、最も頻繁に使用されるシグナルです。

次の例は、上記の機能を示しています。 ラベルと水平スライダーが垂直レイアウトに配置されます。 スライダーのvalueChanged()シグナルはvaluechange()メソッドに接続されています。

self.sl.valueChanged.connect(self.valuechange)

スロット関数valuechange()は、スライダーの現在の値を読み取り、それをラベルのキャプションのフォントのサイズとして使用します。

size = self.sl.value()
self.l1.setFont(QFont("Arial",size))

完全なコードは次のとおりです-

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class sliderdemo(QWidget):
   def __init__(self, parent = None):
      super(sliderdemo, self).__init__(parent)

      layout = QVBoxLayout()
      self.l1 = QLabel("Hello")
      self.l1.setAlignment(Qt.AlignCenter)
      layout.addWidget(self.l1)

      self.sl = QSlider(Qt.Horizontal)
      self.sl.setMinimum(10)
      self.sl.setMaximum(30)
      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)
      self.setWindowTitle("SpinBox demo")

   def valuechange(self):
      size = self.sl.value()
      self.l1.setFont(QFont("Arial",size))

def main():
   app = QApplication(sys.argv)
   ex = sliderdemo()
   ex.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

上記のコードは、次の出力を生成します-

ウィジェットと信号出力

スライダーのハンドルをハンドル上で動かすと、ラベルのフォントサイズが変わります。