【发布时间】:2019-07-27 20:01:55
【问题描述】:
我有一个QDial 小部件,我想知道是否有办法禁用鼠标在表盘上的点击。我只希望能够使用setValue() 设置QDial 的值。当用户点击表盘时,我不希望发生任何事情,而不是移动到用户点击的位置。我查看了mousePressEvent 处理程序,但它仍然将指针移动到新位置。如何禁止鼠标点击影响 QDial 的值?另外:有没有办法通过样式表将当前值指示符(圆形对象)更改为针?
from PyQt4 import QtGui, QtCore
class DisabledDial(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.dial = QtGui.QDial()
self.dial.setMaximum(360)
self.dial.setNotchesVisible(True)
self.dial.setWrapping(True)
self.layout = QtGui.QVBoxLayout()
self.layout.addWidget(self.dial)
self.setLayout(self.layout)
self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.tick_update)
self.timer.start(1000)
def tick_update(self):
self.dial.setValue(self.dial.value() + 10)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
dial = DisabledDial()
dial.show()
sys.exit(app.exec_())
【问题讨论】:
标签: python pyqt pyqt4 mouseevent qdial