WindowsでPython 2.7でPyQt4を使用していますが、音楽プレーヤーの場合Phonon.SeekSlider
、QDial
.
私の問題は、 a の最小値QDial
が常にダイヤルの下部にありますが、上部にあることです (値はまだ時計回りに増加しています)。setInvertedAppearance()
とを試しsetInvertedControls()
ましたが、ダイヤルが水平に反転するだけで、setOrientation()
どちらも役に立ちませんでした。
私の質問: 角度を指定してダイヤルの最小値を配置するか、ダイヤル全体を垂直に反転する方法はありますか?
質問する
3086 次
3 に答える
4
これを直接行う方法はないと思います。ただし、 を に配置しQDial
てQGraphicsView
、シーン内のアイテムとして回転させることはできます。このようなものが動作するはずです:
import sys
from PyQt4 import QtGui, QtCore
class RotatableView(QtGui.QGraphicsView):
def __init__(self, item, rotation=0):
QtGui.QGraphicsView.__init__(self)
scene = QtGui.QGraphicsScene(self)
self.setScene(scene)
graphics_item = scene.addWidget(item)
graphics_item.rotate(rotation)
# make the QGraphicsView invisible
self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.setFixedHeight(item.height())
self.setFixedWidth(item.width())
self.setStyleSheet("border: 0px")
class DialExample(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
dial = QtGui.QDial()
dial.setNotchesVisible(True)
label = QtGui.QLabel('0')
dial.valueChanged.connect(label.setNum)
layout = QtGui.QVBoxLayout()
layout.addWidget(RotatableView(dial, 180))
layout.addWidget(label)
self.setLayout(layout)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
dialexample = DialExample()
dialexample.show()
sys.exit(app.exec_())
于 2013-08-30T22:55:15.417 に答える