zoukankan      html  css  js  c++  java
  • PyQt5-菜单栏工具栏状态栏的使用(QMenuBar、QToolBar、QStatusBar)

    一、QMenuBar

    窗体标题下方QMenuBar作为窗体菜单栏;QMenu对象提供了一个可以添加菜单栏的控件,也可以用于创建上下文菜单和弹出菜单选项;

    每个QMenu对象都可以包含一个或者多个QAction对象或者级联的QMenu对象;

    createPopupMenu()方法用于弹出一个菜单;

    menuBar()方法用于返回主窗口的QMenuBar对象;

    addMenu()方法可以将菜单添加到菜单栏;

    addAction() 方法可以在菜单中进行添加某些操作;

    常用方法:

    例如:

     1 #QMenuBar/QMenu/QAction的使用(菜单栏)
     2 from PyQt5.QtWidgets import   QMenuBar,QMenu,QAction,QLineEdit,QStyle,QFormLayout,   QVBoxLayout,QWidget,QApplication ,QHBoxLayout, QPushButton,QMainWindow,QGridLayout,QLabel
     3 from PyQt5.QtCore import QDir
     4 from PyQt5.QtGui import QIcon,QPixmap,QFont
     5 from PyQt5.QtCore import  QDate
     6 
     7 import sys
     8 
     9 class WindowClass(QMainWindow):
    10 
    11     def __init__(self,parent=None):
    12 
    13         super(WindowClass, self).__init__(parent)
    14         self.layout=QHBoxLayout()
    15         self.menubar=self.menuBar()#获取窗体的菜单栏
    16 
    17         self.file=self.menubar.addMenu("系统菜单")
    18         self.file.addAction("New File")
    19 
    20         self.save=QAction("Save",self)
    21         self.save.setShortcut("Ctrl+S")#设置快捷键
    22         self.file.addAction(self.save)
    23 
    24         self.edit=self.file.addMenu("Edit")
    25         self.edit.addAction("copy")#Edit下这是copy子项
    26         self.edit.addAction("paste")#Edit下设置paste子项
    27 
    28         self.quit=QAction("Quit",self)#注意如果改为:self.file.addMenu("Quit") 则表示该菜单下必须柚子菜单项;会有>箭头
    29         self.file.addAction(self.quit)
    30         self.file.triggered[QAction].connect(self.processtrigger)
    31         self.setLayout(self.layout)
    32         self.setWindowTitle("Menu Demo")
    33 
    34     def processtrigger(self,qaction):
    35         print(qaction.text()+" is triggered!")
    36 
    37 if __name__=="__main__":
    38     app=QApplication(sys.argv)
    39     win=WindowClass()
    40     win.show()
    41     sys.exit(app.exec_())

    二、QToolBar工具栏

    该控件是由文本按钮、图标或者其他小控件按钮组成的可移动面板,通常位于菜单栏下方,作为工具栏使用;

    每次单击工具栏中的按钮,此时都会触发actionTriggered信号。这个信号将关联QAction对象的引用发送到链接的槽函数上;

    常用方法如下:

    例如:结合上面menubar:

     1 #QToolBar(工具栏)
     2 from PyQt5.QtWidgets import QToolBar,   QMenuBar,QMenu,QAction,QLineEdit,QStyle,QFormLayout,   QVBoxLayout,QWidget,QApplication ,QHBoxLayout, QPushButton,QMainWindow,QGridLayout,QLabel
     3 from PyQt5.QtGui import QIcon,QPixmap
     4 
     5 
     6 import sys
     7 
     8 class WindowClass(QMainWindow):
     9 
    10     def __init__(self,parent=None):
    11         super(WindowClass, self).__init__(parent)
    12         self.layout=QVBoxLayout()
    13         self.resize(200,300)
    14         #菜单栏
    15         menuBar=self.menuBar()
    16         menu=menuBar.addMenu("File")
    17         action=QAction(QIcon("./image/save.ico"),"New Project", self)
    18         menu.addAction(action)
    19 
    20         menu2=menu.addMenu("Add to ...")
    21         menu2.addAction(QAction("workspace edit...",self))
    22 
    23 
    24         #工具栏
    25         tool=self.addToolBar("File")
    26         #edit=QAction(QIcon("./image/save.ico"),"刷新",self)
    27         edit=QAction(QIcon("./image/save.ico"),"save",self)
    28         tool.addAction(edit)
    29 
    30         wifi=QAction(QIcon(QPixmap("./image/wifi.png")),"wifi",self)
    31         tool.addAction(wifi)
    32         tool.actionTriggered[QAction].connect(self.toolBtnPressed)
    33 
    34     def toolBtnPressed(self,qaction):
    35         print("pressed too btn is",qaction.text())
    36 if __name__=="__main__":
    37     app=QApplication(sys.argv)
    38     win=WindowClass()
    39     win.show()
    40     sys.exit(app.exec_())

    三、状态栏:QStatusBar

    通过主窗口QMainWindow的setStatusBar()函数设置状态栏信息;

    例如:

    self.statusBar=QstatusBar()

    self.setStatusBar(self.statusBar)

    常用方法:

    例如:修改上面实例,添加如下程序,这是状态栏信息;(点击工具栏按钮触发槽函数执行,完成对状态栏信息修改)

  • 相关阅读:
    JSON AND BSON
    xom报错 Exception in thread "main" java.net.UnknownHostException: file
    创建weblogic受管理服务器和安全文件
    创建weblogic domain
    安装weblogic步骤
    python读取excel表格生成sql语句 第一版
    nutz框架使用记录之Cnd.wrap
    IDEA 导入cordova3.5工程目录注意事项
    javascript类继承
    使用nodejs 访问mongodb
  • 原文地址:https://www.cnblogs.com/ygzhaof/p/10070523.html
Copyright © 2011-2022 走看看