pyqt5讲解6:菜单栏,工具栏,状态栏

菜单栏QMenuBar

方法描述
menuBar()用于返回主窗口的QMenuBar对象
addMenu()将菜单添加到菜单栏;
addAction()在菜单中进行添加某些操作;
setEnabled将操作按钮设为禁用或者启用
addSeperator在菜单中添加一条分界线
clear()删除菜单,菜单栏的内容
setShortcut()设置快捷键
setText()设置菜单栏的文本
setTitle()设置Qmenu小控件的标题
text()返回QAction对象关联的文本
title()返回Qmenu对象的标题
# -*- coding: utf-8 -*-

'''
    【简介】
	PyQt5中 Qmenu 例子
   
  
'''

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class MenuDemo(QMainWindow):
	def __init__(self, parent=None):
		super(MenuDemo, self).__init__(parent)
		layout = QHBoxLayout()
		bar = self.menuBar()
		file = bar.addMenu("File")
		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)
		file.triggered[QAction].connect(self.processtrigger)
		quit.triggered.connect(self.process)
		self.setLayout(layout)
		self.setWindowTitle("menu 例子")
		self.resize(350,300)
		
	def processtrigger(self,q):
		print(q.text()+" is triggered")
		if q.text()=='Save':
			print('save按下啦')

	def process(self):
		print('quit被按下啦')

if __name__ == '__main__':
	app = QApplication(sys.argv)
	demo = MenuDemo()
	demo.show()
	sys.exit(app.exec_())

信号绑定两种方式:
triggered:信号发射

file.triggered[QAction].connect(self.processtrigger)
quit.triggered.connect(self.process)

工具栏QToolBar

方法描述
addAction()添加具有文本或图标的按钮
addSeperator()分组显示工具按钮
addWight()添加工具栏按钮以外的按钮
addToolbar()使用Qmainwindow类的方法添加一个新的工具栏
setMovable()设置工具栏变得可移动
setOrientation()工具栏的方向 Qt.Horizontal或者Qt.vertical
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


class ToolBarDemo(QMainWindow):

    def __init__(self, parent=None):
        super(ToolBarDemo, self).__init__(parent)
        self.setWindowTitle("toolbar 例子")
        self.resize(300, 200)

        layout = QVBoxLayout()
        tb = self.addToolBar("File")
        new = QAction(QIcon("limi.jpg"), "new", self)
        tb.addAction(new)
        open = QAction(QIcon("41.png"), "open", self)
        open.triggered.connect(self.open)
        tb.addAction(open)
        save = QAction(QIcon("3.jpg"), "save", self)
        tb.addAction(save)
        tb.actionTriggered[QAction].connect(self.toolbtnpressed)
        self.setLayout(layout)

    def toolbtnpressed(self, a):
        print("pressed tool button is", a.text())
    def open(self):
        print('打开啦')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    demo = ToolBarDemo()
    demo.show()
    sys.exit(app.exec_())

信号绑定发射两种方法:

open.triggered.connect(self.open)

tb.actionTriggered[QAction].connect(self.toolbtnpressed)

状态栏QStatusBar

方法描述
addWight()在状态栏中添加指定的窗口小控件对象
addPermanentWidget在状态栏中永久添加给定的小窗口对象
showMessage()在状态栏中显示一条临时信息指定时间间隔
clearMessage()删除正在显示的临时信息
removeWidget()删除状态栏中指定的小控件
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class StatusDemo(QMainWindow):
	def __init__(self, parent=None):
		super(StatusDemo, self).__init__(parent)
		bar = self.menuBar()
		file = bar.addMenu("File")
		file.addAction("show")
		file.triggered[QAction].connect(self.processTrigger)
		self.setCentralWidget(QTextEdit())
		
		self.statusBar= QStatusBar() 
		self.setWindowTitle("QStatusBar 例子")
		self.setStatusBar(self.statusBar)
	
	def processTrigger(self,q):
		if (q.text()=="show"):
			self.statusBar.showMessage(q.text()+" 菜单选项被点击了",5000)
	    
if __name__ == '__main__':
	app = QApplication(sys.argv)
	demo = StatusDemo()
	demo.show()
	sys.exit(app.exec_())

本例子指定啦一个菜单对象和一个文本框

和状态栏有关的

self.statusBar= QStatusBar() 
self.setStatusBar(self.statusBar)
	
def processTrigger(self,q):
	if (q.text()=="show"):
		self.statusBar.showMessage(q.text()+" 菜单选项被点击了",5000)

状态信息很快消失

在这里插入图片描述
电气专业的计算机萌新,写博文不容易。如果你觉得本文对你有用,请点个赞支持下,谢谢。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

总裁余(余登武)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值