亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MacO 上的 PyQt5。添加到 QMainWindow 的自定義 QMenuBar 不可點擊

MacO 上的 PyQt5。添加到 QMainWindow 的自定義 QMenuBar 不可點擊

人到中年有點甜 2023-07-27 15:45:49
class MenuBarWidget(QMenuBar):    sig_new_file = pyqtSignal()    sig_open_file = pyqtSignal()    sig_save_file = pyqtSignal()    sig_page_setup = pyqtSignal()    sig_print = pyqtSignal()    sig_exit = pyqtSignal()    sig_status_bar = pyqtSignal(bool)def __init__(self):    super().__init__()    self.init_menu_file()    # self.init_menu_edit()    # self.init_menu_format()    # self.init_menu_view()    # self.init_menu_help()    # self.set_all_text()def init_menu_file(self):    self.act_new_file = QAction('File', self)    self.act_new_file.setShortcut(QKeySequence('Ctrl+N'))    self.act_new_file.triggered.connect(lambda: self.sig_new_file.emit())    self.act_open_file = QAction('Open', self)    self.act_open_file.setShortcut(QKeySequence('Ctrl+O'))    self.act_new_file.triggered.connect(lambda: self.sig_open_file.emit())    self.act_save_file = QAction('Save', self)    self.act_save_file.setShortcut(QKeySequence('Ctrl+S'))    self.act_save_file.triggered.connect(lambda: self.sig_save_file.emit())    self.act_print = QAction('Print', self)    self.act_print.setShortcut(QKeySequence('Ctrl+P'))    self.act_print.triggered.connect(lambda: self.sig_print.emit())    self.act_quit = QAction('Quit', self)    self.act_quit.setShortcut(QKeySequence('Ctrl+Q'))    self.act_quit.triggered.connect(lambda: self.sig_exit.emit())我想用 PyQt 5.15 為 MacOs 10.15.6 上的窗口制作一個菜單欄我使用 QMenuBar 類作為自定義菜單欄,在“文件”菜單下創建了一些子菜單并將其添加到 QMainWindow 中,我可以看到全局菜單欄創建在顯示屏頂部,就像其他 MacO 一樣。但是創建的全局菜單欄不可單擊。我單擊了它,但它沒有顯示“文件”菜單下方的子菜單。但是這種方式使用下面的“setNativeMenuBar(False)”可以像 Windows 應用程序一樣正常工作,但我想使用本機 MacOs 菜單欄QMainWindow.menuBar() and QMainWindow.setNativeMenuBar(False)這是圖像。https://i.stack.imgur.com/hv0VA.jpg
查看完整描述

2 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

# This worked on PyQt5 on macOS Big Sur (ver 11.6)

#    it is the result on painful trial and error

#    and reading the Qt Docs


    def _createMenuBar(self):

        menuBar = self.menuBar()


        # File menu

        fileMenu = menuBar.addMenu("File")

        fileMenu.addAction("New")


        save = QAction("Save",self)

        save.setShortcut("Ctrl+S")

        fileMenu.addAction(save)


        quit = QAction("\0Quit",self)

        quit.setShortcut("Ctrl+Q")

        fileMenu.addAction(quit)


        # Edit menu

        editMenu = menuBar.addMenu("Edit")

        editMenu.addAction("Copy")

        editMenu.addAction("Paste")


        # Help menu

        helpMenu=menuBar.addMenu("Help")

        helpMenu.addAction(self.helpContentAction)

        helpMenu.addAction(self.aboutAction)


查看完整回答
反對 回復 2023-07-27
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

這可能有助于 PyQt5.QtWidgets import QMenuBar

Mainmenu=self.menuBar();# 創建菜單欄小部件

Filemenu=Mainmenu.addMenu('file');#這將文件添加到菜單欄

Editmenu=Mainmenu.addMenu('Edit');#這將編輯添加到菜單欄


查看完整回答
反對 回復 2023-07-27
  • 2 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號