按键在执行开始时连接

时间:2018-02-02 13:31:28

标签: python pyqt4 signals pyqt5 spacebars

我有一个包含PyQt5的Python 3.6.3脚本。 GUI有一个按钮,用于切换视频文件的播放和暂停。按空格键也可以切换播放和暂停。按钮一直工作正常。空格键也可以按预期工作,除非在执行脚本的最开始。在spacebar正确触发信号暂停或播放视频之前,我需要先点击其他一些事件(例如按钮或滑动条)。我希望在脚本启动时开始使用spacebar播放视频。以下是我在同一__init__(self)函数中创建连接的方法。如您所见,单击按钮并按spacebar都会将信号连接到相同的功能(self.pauseVideo)。

self.btnPause = QtWidgets.QPushButton(self.centralwidget)
self.btnPause.clicked.connect(self.pauseVideo)

self.spacebar = QShortcut(QKeySequence(Qt.Key_Space), self)
self.spacebar.activated.connect(self.pauseVideo)

有关如何在脚本首次启动时让spacebar触发信号的建议?

1 个答案:

答案 0 :(得分:0)

经过更多搜索,重新分配键盘快捷键(没有成功)等,我发现了这篇文章PyQt widget keyboard focus。我插了

self.setFocusPolicy(Qt.StrongFocus)

进入__init__(self)它似乎解决了我的问题!现在我只是希望它不会引起其他问题。