PyQt5之QMenuBar
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()
#实例化主窗口的QMenuBar对象
bar=self.menuBar()
#向菜单栏中添加新的QMenu对象,父菜单
file=bar.addMenu('File')
#向QMenu小控件中添加按钮,子菜单
file.addAction('New')
#定义响应小控件按钮,并设置快捷键关联到操作按钮,添加到父菜单下
save=QAction('Save',self)
save.setShortcut('Ctrl+S')
file.addAction(save)
#创建新的子菜单项,并添加孙菜单
edit=file.addMenu('Edit')
edit.addAction('Copy')
edit.addAction('Paste')
#添加父菜单下
quit=QAction('Quit',self)
file.addAction(quit)
self.isnewsfile=None
self.issavefile=None
self.isedit=None
self.isquit=None
#单击任何Qmenu对象,都会发射信号,绑定槽函数
file.triggered[QAction].connect(self.processtrigger)
#设置布局及标题
self.setLayout(layout)
self.setWindowTitle('menu例子')
def processtrigger(self,q):
#输出那个Qmenu对象被点击
str10=q.text()
if str10=='New':
self.isnewsfile=True
print(self.isnewsfile)
elif str10=='Save':
self.issavefile=True
print(self.issavefile)
elif str10=='Edit':
self.isedit=True
print(self.isedit)
elif str10=='Quit':
self.isquit=True
print(self.isquit)
if __name__ == '__main__':
app=QApplication(sys.argv)
demo=MenuDemo()
demo.show()
sys.exit(app.exec_())
版权声明:本文为qestion_yz_10086原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。