pyQT 菜单栏 工具栏 状态栏使用

https://blog.csdn.net/sandorn/article/details/92812035?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

PyQt5-菜单栏工具栏状态栏的使用(QMenuBar、QToolBar、QStatusBar)

转自:PyQt5-菜单栏工具栏状态栏的使用(QMenuBar、QToolBar、QStatusBar) - ygzhaof_100 - 博客园
https://www.cnblogs.com/ygzhaof/p/10070523.html

 

一、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.  
    #tool.setOrientation(Qt.Horizontal) # 默认横向
  30.  
    #tool.setOrientation(Qt.Vertical) # 纵向摆放
  31.  
    #tool.setFixedWidth(64) #设定宽度
  32.  
    #tool.setFixedHeight(64) #设定高度
  33.  
     
  34.  
    wifi=QAction(QIcon(QPixmap("./image/wifi.png")),"wifi",self)
  35.  
    tool.addAction(wifi)
  36.  
    tool.actionTriggered[QAction].connect(self.toolBtnPressed)
  37.  
     
  38.  
    def toolBtnPressed(self,qaction):
  39.  
    print("pressed too btn is",qaction.text())
  40.  
    if __name__=="__main__":
  41.  
    app=QApplication(sys.argv)
  42.  
    win=WindowClass()
  43.  
    win.show()
  44.  
    sys.exit(app.exec_())

 

 

 

三、状态栏:QStatusBar

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

例如:

self.statusBar=QstatusBar()

self.setStatusBar(self.statusBar)

常用方法:

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


目录

PyQt5-菜单栏工具栏状态栏的使用(QMenuBar、QToolBar、QStatusBar)

一、QMenuBar

二、QToolBar工具栏

三、状态栏:QStatusBar

posted @ 2020-03-15 00:57  小鱼o。  阅读(942)  评论(0)    收藏  举报