Pyqt-qspinbox-widget
提供:Dev Guides
PyQt-QSpinBoxウィジェット
*QSpinBox* オブジェクトは、右側に上/下ボタンがある整数を表示するテキストボックスをユーザーに提示します。 上/下ボタンを押すと、テキストボックスの値が増加/減少します。
デフォルトでは、ボックス内の整数は0から始まり、99まで進み、ステップ1で変更されます。 float値にはQDoubleSpinBoxを使用します。
QSpinBoxクラスの重要なメソッドは、次の表に記載されています-
Sr.No. | Methods & Description |
---|---|
1 |
setMinimum() カウンターの下限を設定します |
2 |
setMaximum() カウンターの上限を設定します |
3 |
setRange() 最小値、最大値、ステップ値を設定します |
4 |
setValue() スピンボックスの値をプログラムで設定します |
5 |
Value() 現在の値を返します |
6 |
singleStep() カウンターのステップ値を設定します |
QSpinBoxオブジェクトは、上/所有ボタンが押されるたびにvalueChanged()シグナルを発信します。 関連するスロット関数は、value()メソッドによってウィジェットの現在の値を取得できます。
次の例では、ラベル(l1)とスピンボックス(sp)がトップウィンドウの垂直レイアウトに配置されています。 valueChanged()シグナルはvaluechange()メソッドに接続されています。
self.sp.valueChanged.connect(self.valuechange)
valueChange()関数は、現在の値をラベルのキャプションとして表示します。
self.l1.setText("current value:"+str(self.sp.value()))
完全なコードは次のとおりです-
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class spindemo(QWidget):
def __init__(self, parent = None):
super(spindemo, self).__init__(parent)
layout = QVBoxLayout()
self.l1 = QLabel("current value:")
self.l1.setAlignment(Qt.AlignCenter)
layout.addWidget(self.l1)
self.sp = QSpinBox()
layout.addWidget(self.sp)
self.sp.valueChanged.connect(self.valuechange)
self.setLayout(layout)
self.setWindowTitle("SpinBox demo")
def valuechange(self):
self.l1.setText("current value:"+str(self.sp.value()))
def main():
app = QApplication(sys.argv)
ex = spindemo()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
上記のコードは、次の出力を生成します-