python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例


Posted in Python onFebruary 28, 2020

PyQt5工具栏控件QToolBar介绍

QToolBar控件是由文本按钮,图标或其他小控件按钮组成的可移动面板,通常位于菜单栏下方

QToolBar类中的常用方法

方法 描述
addAction() 添加具有文本或图标的工具按钮
addSeperator() 分组显示工具按钮
addWidget() 添加工具栏中按钮以外的控件
addToolBar() 使用QMainWindow类的方法添加一个新的工具栏
setMovable() 工具变得可移动
setOrientation() 工具栏的方向可以设置为Qt.Horizontal或Qt.certical

每当单击工具栏中的按钮时,都将发射actionTriggered信号,另外,这个信号将关联的QAction对象的引用发到连接的槽函数上

QToolBar使用实例

import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore 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('images\\new.png'),'new',self)
    tb.addAction(new)
    open=QAction(QIcon('images\open.png'),'open',self)
    tb.addAction(open)
    save=QAction(QIcon('images\save.png'),'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())
if __name__ == '__main__':
  app=QApplication(sys.argv)
  demo=ToolBarDemo()
  demo.show()
  sys.exit(app.exec_())

运行程序,显示效果如图

python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例

QToolBar代码分析

在这个例子中,首先调用addToolBar()方法在工具栏区域添加文件工具栏

tb=self.addToolBar('File')

然后,添加具有文本标题的工具按钮,工具栏通常包含图形按钮,具有图标和名称的QAction对象将被添加到工具栏中

new=QAction(QIcon('images\\new.png'),'new',self)
    tb.addAction(new)
    open=QAction(QIcon('images\open.png'),'open',self)
    tb.addAction(open)
    save=QAction(QIcon('images\save.png'),'save',self)
    tb.addAction(save)

最后,将actionTriggered信号连接到槽函数toolbtnpressed()

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

本文详细讲解了PyQt5工具栏控件QToolBar的详细使用方法与实例,更多关于PyQt5库控介绍请查看下面的相关链接

Python 相关文章推荐
Python实现Linux下守护进程的编写方法
Aug 22 Python
分析并输出Python代码依赖的库的实现代码
Aug 09 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
Python实现全排列的打印
Aug 18 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
Python中的上下文管理器相关知识详解
Sep 19 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
Python类成员继承重写的实现
Sep 16 Python
python 实用工具状态机transitions
Nov 21 Python
Python基于爬虫实现全网搜索并下载音乐
Feb 14 Python
详解Python牛顿插值法
May 11 Python
Python 解决空列表.append() 输出为None的问题
May 23 Python
Python爬取365好书中小说代码实例
Feb 28 #Python
Python反爬虫伪装浏览器进行爬虫
Feb 28 #Python
使用wxpy实现自动发送微信消息功能
Feb 28 #Python
解决ROC曲线画出来只有一个点的问题
Feb 28 #Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 #Python
利用python画出AUC曲线的实例
Feb 28 #Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 #Python
You might like
php中将一个对象保存到Session中的方法
2015/03/13 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
jQuery中需要注意的细节问题小结
2011/12/06 Javascript
JS继承用法实例分析
2015/02/05 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
javascript常用的方法分享
2015/07/01 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
JS中type="button"和type="submit"的区别
2017/07/04 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
微信JSSDK调用微信扫一扫功能的方法
2017/07/25 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
js构建二叉树进行数值数组的去重与优化详解
2018/03/26 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
jquery实现两个div中的元素相互拖动的方法分析
2020/04/05 jQuery
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
2020/08/07 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
Python内存管理实例分析
2019/07/10 Python
Python用SSH连接到网络设备
2021/02/18 Python
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
社团2014年植树节活动总结
2014/03/11 职场文书
员工教育培训协议书
2014/09/27 职场文书
安全隐患整改报告
2014/11/06 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
golang如何去除多余空白字符(含制表符)
2021/04/25 Golang
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
Promise静态四兄弟实现示例详解
2022/07/07 Javascript