python工具栏消失_[Python自学] PyQT5-菜单栏、工具栏、状态栏

一、菜单栏

手工使用代码创建菜单栏主要有以下步骤:

1)创建一个获取窗口的menuBar实例(这个实例是MainWindow的成员属性)

2)在menuBar中添加Menu

3)在Menu中添加Actions

4)为Actions绑定triggered事件

菜单栏Demo:

importsys#导入QT,其中包含一些常量,例如颜色等

from PyQt5.QtCore importQt#导入常用组件

from PyQt5.QtWidgets importQApplication, QMainWindowfrom PyQt5.QtWidgets importQAction#使用调色板等

from PyQt5.QtGui importQIconclassDemoWin(QMainWindow):def __init__(self):

super().__init__()

self.initUI()definitUI(self):

self.resize(400, 250)#获取QMainWindow的MenuBar对象

bar =self.menuBar()#在menuBar上添加文件菜单

file = bar.addMenu("文件")

new= QAction("新建 (&N)", self)

open= QAction("打开 (&O)", self)

save= QAction("保存", self)#为一个Action设置快捷键

save.setShortcut("Ctrl + S")

saveAt= QAction("另存为", self)

file.addAction(new)

file.addAction(open)

file.addAction(save)

file.addAction(saveAt)#为文件-->保存绑定槽函数

save.triggered.connect(self.saveProcess)#在menuBar上添加编辑菜单

edit = bar.addMenu("编辑")

edit.addAction("复制")

edit.addAction("剪切")

edit.addAction("粘贴")#在编辑菜单中添加一个其他操作菜单,其中包含多个QAction

others = edit.addMenu("其他操作")

others.addAction("A操作")

others.addAction("B操作")

others.addAction("B操作")

quit= QAction("退出", self)#文件-->退出,绑定窗口的close槽

quit.triggered.connect(self.close)

file.addAction(quit)#添加窗口标题

self.setWindowTitle("MenuDemo")defsaveProcess(self):print("保存")if __name__ == '__main__':

app=QApplication(sys.argv)

app.setWindowIcon(QIcon("images/icon.ico"))#创建一个主窗口

mainWin =DemoWin()#显示

mainWin.show()#主循环

sys.exit(app.exec_())

实现效果:

1244144-20200615140732253-1007098420.gif

二、工具栏

要使用工具栏,需要以下步骤:

1)在QMainWindow中添加一个工具栏 addToolBar()

2)在toolBar中添加Action(Action可以指定图标和名称,默认只显示图标,名称以tip的方式显示)

importsys#导入QT,其中包含一些常量,例如颜色等

from PyQt5.QtCore importQt#导入常用组件

from PyQt5.QtWidgets importQApplication, QMainWindowfrom PyQt5.QtWidgets importQAction, QMenu, QActionGroup#使用调色板等

from PyQt5.QtGui importQIconclassDemoWin(QMainWindow):def __init__(self):

super().__init__()

self.initUI()definitUI(self):

self.resize(400, 250)#创建一个toolBar,用于放置文件操作

fileBar = self.addToolBar("File")

new= QAction(QIcon('./images/new.jpg'), "新建", self) #指定了图标默认显示图标

fileBar.addAction(new)

open= QAction(QIcon('./images/open.jpg'), "打开", self)

fileBar.addAction(open)

fileBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)#设置名称显示在图标下面(默认本来是只显示图标)

fileBar.actionTriggered.connect(self.toolbtnpressed)#创建另一个toolbar,用于放置编辑操作

editBar = self.addToolBar("Edit")

copy= QAction("复制", self) #没有指定图标,默认显示名称

editBar.addAction(copy)

paste= QAction("粘贴", self)

editBar.addAction(paste)#添加窗口标题

self.setWindowTitle("ToolBarDemo")deftoolbtnpressed(self, a):print("按下的ToolBar按钮是", a.text()) #打印点击的按钮名称

if __name__ == '__main__':

app=QApplication(sys.argv)

app.setWindowIcon(QIcon("images/icon.ico"))#创建一个主窗口

mainWin =DemoWin()#显示

mainWin.show()#主循环

sys.exit(app.exec_())

实现效果:

1244144-20200615144853702-390151706.png

三、状态栏

状态栏存在于窗口的最下方,用于显示信息。

Demo:

importsys#导入QT,其中包含一些常量,例如颜色等

from PyQt5.QtCore importQt#导入常用组件

from PyQt5.QtWidgets importQApplication, QMainWindowfrom PyQt5.QtWidgets importQAction, QStatusBar#使用调色板等

from PyQt5.QtGui importQIconclassDemoWin(QMainWindow):def __init__(self):

super().__init__()

self.initUI()definitUI(self):

self.resize(400, 250)

fileBar= self.addToolBar("File")

new= QAction(QIcon('./images/new.jpg'), "新建", self)

fileBar.addAction(new)

open= QAction(QIcon('./images/open.jpg'), "打开", self)

fileBar.addAction(open)

fileBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

fileBar.actionTriggered.connect(self.toolbtnpressed)

editBar= self.addToolBar("Edit")

copy= QAction("复制", self)

editBar.addAction(copy)

paste= QAction("粘贴", self)

editBar.addAction(paste)#定义一个状态栏,并添加到窗口上

self.statusBar =QStatusBar()

self.setStatusBar(self.statusBar)#添加窗口标题

self.setWindowTitle("StatusBarDemo")deftoolbtnpressed(self, a):

self.statusBar.showMessage(a.text()+ "按钮被点击了.", 2000) #2000表示显示2s消失

if __name__ == '__main__':

app=QApplication(sys.argv)

app.setWindowIcon(QIcon("images/icon.ico"))#创建一个主窗口

mainWin =DemoWin()#显示

mainWin.show()#主循环

sys.exit(app.exec_())

实现效果:

1244144-20200615153758328-34773727.gif

====

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值