QSpinboxを最初の値に設定する方法はありますか?最後に達したらステップアップボタンをもう一度押しますか?終了時にQSpinboxをループする
私はカスタムQSpinBoxでそれをやってみましたが、最後の値に達するとすぐにyがリセットされ、最後の値が決して見えなくなります。
from PyQt5.QtWidgets import QSpinBox
from music import TonoFactory
_tf = TonoFactory()
class StringBox(QSpinBox):
def __init__(self, parent=None):
super(StringBox, self).__init__(parent)
strings = []
for key in _tf.notas.keys():
strings.append(key)
self.setStrings(strings)
self.editingFinished.connect(self.reset_spin)
def strings(self):
return self._strings
def setStrings(self, strings):
strings = list(strings)
self._strings = tuple(strings)
self._values = dict(zip(strings, range(len(strings))))
self.setRange(0, len(strings) - 1)
def textFromValue(self, value):
return self._strings[value]
def valueFromText(self, text):
return self._values[text]
def reset_spin(self):
if self.value() == len(self.strings()) -1:
self.setValue(0)
あなたが試したことを示してください。 SOはコーディングサービスではありませんので、以下をお読みください。[ask] – eyllanesc
@eyllanesc今すぐ追加 –
この例ではTonoFactoryを使用する必要がありますか? – eyllanesc