菜单:
调用QMainWindow类的menuBar方法可以获得主窗口的QMenuBar对象,该对象表示主窗口的菜单栏,通过QMenuBar对象的addMenu方法可以在菜单栏中添加菜单项。然后通过addAction方法添加子菜单项。
创建一个QMenuBar对象的方法为:fileMenu = menubar.addMenu('文件')
创建一个不带子菜单项的菜单项的方法为QAction方法:newAct = PQW.QAction('新建',self)
创建一个带子菜单项的菜单项的方法为QMenu:impMenu = PQW.QMenu('导入',self)
添加一个带子菜单项的方法为addMenu():fileMenu.addMenu(impMenu) #把“导入”这个子菜单项目添加到菜单栏的“文件”菜单项中。
添加一个不带子菜单项的方法为addMenu():fileMenu.addAction(newAct) #把“新建”这个子菜单项目添加到菜单栏的“文件”菜单项中。
实例代码:
import sys import PyQt5.QtWidgets as PQW import PyQt5.QtGui as PQG import PyQt5.QtCore as PQC class Menu(PQW.QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): # 新建一个菜单栏对象 self.lbl = PQW.QLabel('print to here',self) self.lbl.move(50,150) menubar = self.menuBar() # 添加“文件”菜单项 fileMenu = menubar.addMenu('文件') # 添加“新建”菜单项 newAct = PQW.QAction('新建',self) # 添加“导入”菜单项 (带子菜单项) impMenu = PQW.QMenu('导入',self) impAct1 = PQW.QAction('从pdf导入',self) impAct2 = PQW.QAction('从word导入', self) # 为菜单添加单击处理时间 fileMenu.addAction(newAct) fileMenu.addMenu(impMenu) impMenu.addAction(impAct1) impMenu.addAction(impAct2) impAct1.triggered.connect(lambda :self.actionHandler(1)) impAct2.triggered.connect(lambda :self.actionHandler(2)) self.setGeometry(300,300,300,200) self.setWindowTitle('菜单') self.show() def actionHandler(self,n): s = '从pdf文件导入' print(n) self.lbl.setText(s) self.lbl.adjustSize() if __name__ == '__main__': app = PQW.QApplication(sys.argv) ex = Menu() sys.exit(app.exec_())
运行效果: