返回顶部

[Python] [pyqt5]菜单和工具栏使用

[复制链接]
awagink 显示全部楼层 发表于 2021-1-4 22:13:38 |阅读模式 打印 上一主题 下一主题
pyqt5 -——菜单和工具栏

一. 状态栏

  1. # -*- coding: utf-8 -*-
  2. # @Time    : 2018/12/22 12:37
  3. # @Author  : Bo
  4. # @Email   : [email protected]
  5. # @File    : demo3.py
  6. # @Software: PyCharm
  7. import sys
  8. from PyQt5.QtWidgets import QMainWindow, QApplication


  9. class Example(QMainWindow):

  10.     def __init__(self):
  11.         super().__init__()

  12.         self.initUI()


  13.     def initUI(self):

  14.         self.statusBar().showMessage('Ready')

  15.         self.setGeometry(300, 300, 250, 150)
  16.         self.setWindowTitle('Statusbar')
  17.         self.show()


  18. if __name__ == '__main__':

  19.     app = QApplication(sys.argv)
  20.     ex = Example()
  21.     sys.exit(app.exec_())
复制代码

状态栏是由QMainWindow创建的。

self.statusBar().showMessage('Ready')
调用QtGui.QMainWindow类的statusBar()方法,创建状态栏。第一次调用创建一个状态栏,返回一个状态栏对象。showMessage()方法在状态栏上显示一条信息。

二  菜单栏
  1. import sys
  2. from PyQt5.QtWidgets import QAction,qApp,QApplication,QMainWindow
  3. from PyQt5.QtGui import QIcon

  4. class Example(QMainWindow):

  5.     def __init__(self):
  6.         super().__init__()

  7.         self.initUI()


  8.     def initUI(self):

  9.         exitAct = QAction(QIcon('1.png'),'&Exit',self)
  10.         exitAct.setShortcut('Ctrl+Q')
  11.         exitAct.setStatusTip('Exit Application')
  12.         exitAct.triggered.connect(qApp.quit)

  13.         self.statusBar()

  14.         menubar = self.menuBar()
  15.         fileMenu = menubar.addMenu("&File")
  16.         fileMenu.addAction(exitAct)

  17.         self.setGeometry(300, 300, 250, 150)
  18.         self.setWindowTitle('simple menu')
  19.         self.show()


  20. if __name__ == '__main__':

  21.     app = QApplication(sys.argv)
  22.     ex = Example()
  23.     sys.exit(app.exec_())
复制代码



我们创建了只有一个命令的菜单栏,这个命令就是终止应用。同时也创建了一个状态栏。而且还能使用快捷键Ctrl+Q退出应用。

exitAct = QAction(QIcon('exit.png'), '&Exit', self)        
exitAct.setShortcut('Ctrl+Q')
exitAct.setStatusTip('Exit application')
QAction是菜单栏、工具栏或者快捷键的动作的组合。前面两行,我们创建了一个图标、一个exit的标签和一个快捷键组合,都执行了一个动作。第三行,创建了一个状态栏,当鼠标悬停在菜单栏的时候,能显示当前状态。

exitAct.triggered.connect(qApp.quit)
当执行这个指定的动作时,就触发了一个事件。这个事件跟QApplication的quit()行为相关联,所以这个动作就能终止这个应用。

menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAct)
menuBar()创建菜单栏。这里创建了一个菜单栏,并在上面添加了一个file菜单,并关联了点击退出应用的事件。

三 .子菜单

  1. import sys
  2. from PyQt5.QtWidgets import QAction, qApp, QApplication, QMainWindow, QMenu
  3. from PyQt5.QtGui import QIcon

  4. class Example(QMainWindow):

  5.     def __init__(self):
  6.         super().__init__()

  7.         self.initUI()


  8.     def initUI(self):


  9.         exitAct = QAction(QIcon('1.png'),'&Exit',self)
  10.         exitAct.setShortcut('Ctrl+Q') #快捷键
  11.         exitAct.setStatusTip('Exit Application')
  12.         exitAct.triggered.connect(qApp.quit)

  13.         impMenu = QMenu("Import",self)
  14.         impAct = QAction("Import mail",self)
  15.         impMenu.addAction(impAct)

  16.         self.statusBar()

  17.         menubar = self.menuBar()
  18.         fileMenu = menubar.addMenu("&File")
  19.         fileMenu.addAction(exitAct)

  20.         newAct = QAction("new",self)
  21.         fileMenu.addAction(newAct)
  22.         fileMenu.addMenu(impMenu)
  23.         
  24.         self.setGeometry(300, 300, 250, 150)
  25.         self.setWindowTitle('simple menu')
  26.         self.show()


  27. if __name__ == '__main__':

  28.     app = QApplication(sys.argv)
  29.     ex = Example()
  30.     sys.exit(app.exec_())
复制代码


这个例子里,有两个子菜单,一个在file菜单下面,一个在file的import下面。

impMenu = QMenu('Import', self)
使用QMenu创建一个新菜单。

impAct = QAction('Import mail', self)
impMenu.addAction(impAct)
使用addAction添加一个动作。

submenu
2-submenu.png
四  . 勾选菜单,右键菜单

五 . 工具栏

六 . 主窗口

  1. import sys
  2. from PyQt5.QtWidgets import QAction, qApp, QApplication, QMainWindow, QMenu, QTextEdit
  3. from PyQt5.QtGui import QIcon

  4. class Example(QMainWindow):

  5.     def __init__(self):
  6.         super().__init__()

  7.         self.initUI()


  8.     def initUI(self):

  9.         textEdit = QTextEdit()
  10.         self.setCentralWidget(textEdit)



  11.         exitAct = QAction(QIcon('1.png'),'&Exit',self)
  12.         exitAct.setShortcut('Ctrl+Q') #快捷键
  13.         exitAct.setStatusTip('Exit Application')
  14.         exitAct.triggered.connect(qApp.quit)

  15.         impMenu = QMenu("Import",self)
  16.         impAct = QAction("Import mail",self)
  17.         impMenu.addAction(impAct)

  18.         self.statusBar()

  19.         menubar = self.menuBar()
  20.         fileMenu = menubar.addMenu("&File")
  21.         fileMenu.addAction(exitAct)

  22.         newAct = QAction("new",self)
  23.         fileMenu.addAction(newAct)
  24.         fileMenu.addMenu(impMenu)

  25.         toolbar = self.addToolBar('Exit')
  26.         toolbar.addAction(exitAct)
  27.         self.setGeometry(300, 300, 250, 150)
  28.         self.setWindowTitle('simple menu')
  29.         self.show()


  30. if __name__ == '__main__':

  31.     app = QApplication(sys.argv)
  32.     ex = Example()
  33.     sys.exit(app.exec_())
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

纳速健身网成立于2006年8月,是国内优秀健身运动网站,现拥浏览人数超30万。网站是集养生、武术、太极拳和健身气功等多种健身项目于一体的多功能交流平台。平台提供大量优质的教学视频、伴奏音乐(太极拳晨练音乐,广场舞音乐,健身气功音乐)、图文教程、运动科普和经验分享,为健身爱好者提供完善的运动指导平台。
  • 纳速QQ群乙:151815303
  • 纳速QQ群丙:79104490
  • 微信交流群:微信好友搜索【nasuwang】加小纳微信进群交流健身知识,备注【纳速】
  •                     或者扫描页面底部右侧二维码添加小纳微信>>>
  • 微信公众号

  • 微信群客服交流

  • Copyright © 2006-2021, 纳速健身网. | | 辽ICP备13002388号-1 辽公安网备21050202000005号公安网备号 纳速武术-乙 QQ