小编Jia*_*ang的帖子

如何在 PyQt5 中使用全局键盘快捷键显示 QMenu?

我试图通过PyQt5的热键(例如“F1”)显示 QMenu 实例,然后我找到了这个包键盘

尝试像这样使用它:keyboard.add_hotkey('F1', self.show_menu, suppress=True)

然后我得到了这些代码:

import sys

import keyboard

from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


class MainWindow(QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__(flags=Qt.WindowStaysOnTopHint)

        self.menu = QMenu('Menu')
        self.menu.addAction(QAction('menu1', self.menu))
        self.menu.addAction(QAction('menu2', self.menu))
        self.menu.addAction(QAction('menu3', self.menu))

        self.show_menu()  # this works well

        keyboard.add_hotkey('F1', self.show_menu, suppress=True)  # this hotkey works but not showing the menu

    def show_menu(self):
        print('111')
        self.menu.popup(QCursor().pos())
        print('222')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setQuitOnLastWindowClosed(False)
    win = MainWindow()
    # win.show()
    sys.exit(app.exec_())

Run Code Online (Sandbox Code Playgroud)

实际上,调用方法 …

python keyboard pyqt python-3.x pyqt5

2
推荐指数
1
解决办法
1398
查看次数

标签 统计

keyboard ×1

pyqt ×1

pyqt5 ×1

python ×1

python-3.x ×1