シグナルとスロットを使用して 2 つのスライダーをリンクする、次のような単純な例を考えてみましょう。
from PySide.QtCore import *
from PySide.QtGui import *
import sys
class MyMainWindow(QWidget):
def __init__(self):
QWidget.__init__(self, None)
vbox = QVBoxLayout()
sone = QSlider(Qt.Horizontal)
vbox.addWidget(sone)
stwo = QSlider(Qt.Horizontal)
vbox.addWidget(stwo)
sone.valueChanged.connect(stwo.setValue)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyMainWindow()
w.show()
sys.exit(app.exec_())
2 番目のスライダーが最初のスライダーと反対方向に動くようにするには、これをどのように変更しますか? スライダー 1 は、次の値で初期化されます。
sone.setRange(0,99)
sone.setValue(0)
また、スライダー 2 は次の値で初期化されます。
stwo.setRange(0,99)
stwo.setValue(99)
そして、stwo の値は になります99 - sone.sliderPosition
。
これを機能させるには、シグナルとスロットをどのように実装しますか? 上記の単純な例に基づいた実用的な例をいただければ幸いです。