gpt4 book ai didi

python - QSlider 和按键事件

转载 作者:行者123 更新时间:2023-11-28 21:26:09 26 4
gpt4 key购买 nike

我目前有一个 QSlider,它可以使用鼠标滚动图像数据帧。我希望能够使用箭头键滚动一步(一帧)。

这是我当前的 sliderMoved 代码:

def sliderMoved(self,val):
"""
retrieves the data array for the index value specified by the slider
"""

if self.fileheader is None:
print "[DEBUG] change_image_index(): self.fileheader is None"
return

idx=val
self.x=idx
frame=self.fileheader.frameAtIndex(idx)
image=scipy.ndimage.filters.maximum_filter(frame.data, size=5)

self.image.setImage(image, scale=((10.28/512),(2.486/96)))
print self.image.imageItem.pixelSize()

def keyPressEvent(self, event):
if event.key()==Qt.Key_Right:
frame=self.fileheader.frameAtIndex(idx+1)

要将 slider 连接到事件,我只使用:

self.slider.sliderMoved.connect(self.sliderMoved)
self.slider.sliderMoved.connect(self.keyPressEvent)

箭头键移动 slider ,但不会导致图像跳帧...我知道我在这里遗漏了一些愚蠢的东西...

最佳答案

尝试连接到 slider 的 valueChanged 而不是 sliderMoved

import sys
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QApplication, QWidget, QSlider, QLabel, QVBoxLayout

class Widget(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent)

self.v_layout = QVBoxLayout()

self.slider = QSlider()
self.slider.setOrientation(Qt.Horizontal)
self.label = QLabel('Slider at position 0')

self.v_layout.addWidget(self.label)
self.v_layout.addWidget(self.slider)

self.setLayout(self.v_layout)

self.slider.valueChanged.connect(self.slider_moved)

def keyPressEvent(self, event):
if event.key()==Qt.Key_Right:
self.slider.setValue(self.slider.value() + 1)
elif event.key()==Qt.Key_Left:
self.slider.setValue(self.slider.value() - 1)
else:
QWidget.keyPressEvent(self, event)

def slider_moved(self, position):
self.label.setText('Slider at position %d' % position)


if __name__ == '__main__':
app = QApplication(sys.argv)

widget = Widget()
widget.show()

sys.exit(app.exec_())

从您的 keyPressEvent 中,您只需更改 slider 的值,这将导致连接到 valueChanged 的任何函数运行。

关于python - QSlider 和按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com