溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5菜單欄控件QMenuBar的詳細(xì)使用方法與實(shí)例

發(fā)布時(shí)間:2020-08-20 19:58:47 來(lái)源:腳本之家 閱讀:364 作者:jia666666 欄目:開(kāi)發(fā)技術(shù)

PyQt5菜單欄控件QMenuBar介紹

QMenuBar在QMainWindow對(duì)象的標(biāo)題欄下方,水平的QMenuBar被保留顯示QMenu對(duì)象

QMenuBar類(lèi)提供了一個(gè)可以包含一個(gè)或多個(gè)QAction對(duì)象或 級(jí)聯(lián)的QMenu對(duì)象,要?jiǎng)?chuàng)建一個(gè)彈出菜單,Pyqt提供了createPopupMenu()函數(shù),menuBar()函數(shù)用于返回主窗口的QMenuBar對(duì)象:addMenu()函數(shù)可以將菜單添加到菜單欄中,通過(guò)addAction()函數(shù)可以在菜單中進(jìn)行添加操作

設(shè)計(jì)菜單系統(tǒng)時(shí)常用的一些重要方法

方法 描述
menuBar() 返回主窗口的QMenuBar對(duì)象
addMenu() 在菜單欄中添加一個(gè)新的QMenu對(duì)象
addAction() 向QMenu小控件中添加一個(gè)操作按鈕,其中包含文本或圖標(biāo)
setEnabled() 將操作按鈕設(shè)置為啟用/禁用
addSeperator() 在菜單中添加一條分割線
clear() 刪除菜單欄的內(nèi)容
setShortcut() 將快捷鍵關(guān)聯(lián)到操作按鈕
setText() 設(shè)置菜單項(xiàng)的文本
setTitle() 設(shè)置QMenu小控件的標(biāo)題
text() 返回與QACtion對(duì)象關(guān)聯(lián)的文本
title() 返回QMenu小控件的標(biāo)題

單擊任何QAction按鈕時(shí),QMenu對(duì)象都會(huì)發(fā)射triggered信號(hào)

QMenuBar的使用實(shí)例

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

class MenuDemo(QMainWindow):
  def __init__(self,parent=None):
    super(MenuDemo, self).__init__(parent)

    #水平布局
    layout=QHBoxLayout()

    #實(shí)例化主窗口的QMenuBar對(duì)象
    bar=self.menuBar()
    #向菜單欄中添加新的QMenu對(duì)象,父菜單
    file=bar.addMenu('File')
    #向QMenu小控件中添加按鈕,子菜單
    file.addAction('New')

    #定義響應(yīng)小控件按鈕,并設(shè)置快捷鍵關(guān)聯(lián)到操作按鈕,添加到父菜單下
    save=QAction('Save',self)
    save.setShortcut('Ctrl+S')
    file.addAction(save)

    #創(chuàng)建新的子菜單項(xiàng),并添加孫菜單
    edit=file.addMenu('Edit')
    edit.addAction('Copy')
    edit.addAction('Paste')

    #添加父菜單下
    quit=QAction('Quit',self)
    file.addAction(quit)

    #單擊任何Qmenu對(duì)象,都會(huì)發(fā)射信號(hào),綁定槽函數(shù)
    file.triggered[QAction].connect(self.processtrigger)

    #設(shè)置布局及標(biāo)題
    self.setLayout(layout)
    self.setWindowTitle('menu例子')

  def processtrigger(self,q):
    #輸出那個(gè)Qmenu對(duì)象被點(diǎn)擊
    print(q.text()+'is triggeres')

if __name__ == '__main__':
  app=QApplication(sys.argv)
  demo=MenuDemo()
  demo.show()
  sys.exit(app.exec_())

運(yùn)行程序,顯示效果如圖

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5菜單欄控件QMenuBar的詳細(xì)使用方法與實(shí)例

QMenuBar代碼分析

在這個(gè)例子中,頂層窗口必須是QMainWindow對(duì)象,才可以引用QMenuBar對(duì)象

通過(guò)addMenu()方法將‘File'菜單添加到菜單欄

    bar=self.menuBar()

    #向菜單欄中添加新的QMenu對(duì)象,父菜單

    file=bar.addMenu('File')

菜單欄中的操作按鈕可以是字符串或QAction對(duì)象

    file.addAction('New')
    #定義響應(yīng)小控件按鈕,并設(shè)置快捷鍵關(guān)聯(lián)到操作按鈕,添加到父菜單下

    save=QAction('Save',self)
    save.setShortcut('Ctrl+S')
    file.addAction(save)

將子菜單添加到頂級(jí)菜單中

    edit=file.addMenu('Edit')
    edit.addAction('Copy')
    edit.addAction('Paste')

菜單發(fā)射triggered信號(hào),將信號(hào)連接到槽函數(shù)processtrigger()該函數(shù)接受信號(hào)的QAction對(duì)象

file.triggered[QAction].connect(self.processtrigger)

本文詳細(xì)講解了PyQt5菜單欄控件QMenuBar的使用方法與實(shí)例,更多關(guān)于PyQt5菜單欄控件的使用知識(shí)請(qǐng)查看下面的相關(guān)鏈接

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI