如何通过点击qslider获得价值?

2024-06-28 19:29:47 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我使用Pyqt来创建使用Python编程语言的GUI程序。我试图在点击Qslider时得到它的值,但是我不明白怎么。。。在

self.slide.mouseDoubleClickEvent= lambda event: self.slideclicked()

这是我在单击幻灯片时声明方法的方式,这是方法:

^{pr2}$

我希望得到鼠标点击的值,但是我只是得到了Qslider的当前值。在


Tags: 方法lambdaself程序event声明方式gui
1条回答
网友
1楼 · 发布于 2024-06-28 19:29:47

一种可能的解决方案是重写mouseDoubleClickEvent方法并创建一个发送该信息的信号:

class Slider(QSlider):
    pointClicked = pyqtSignal(QPoint)
    def mouseDoubleClickEvent(self, event):
        self.pointClicked.emit(event.pos())

class Widget(QWidget):
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.setLayout(QVBoxLayout())
        self.slider = Slider()
        self.layout().addWidget(self.slider)
        self.slider.pointClicked.connect(lambda p: print(p.x(), p.y()))

如果无法覆盖该方法,可以使用eventFilter

^{pr2}$

相关问题 更多 >