Qt与PyQT中设置ToolBar在AllowedArea的显示
因为个人对传统的软件GUI界面不是太喜欢,最近又在学习Qt和PyQt5,所以就有了设置ToolBar在窗口的不同地方的想法,经过浪里淘沙,最终在Qt官网里找到了,原来再添加toolBar的时候是由设置toolbar位置的参数(addToolBar()有多个重载),只是有很多的教材都忽略了这么一个参数。
这是QMainWindow中的各个构成框架,通过他可以清晰的了解各个控件可以放置的位置,对QMainWindow也有一个比较直观的了解。

以下是Qt官网上关于该类(在QMainWindow)的添加QToolBar控件的函数的解析。
(
在第一个重载函数中就指出了需要把toolbar放置的地方,其取值有:

在添加ToolBar 的时候,就可以根据自己对工具栏位置的喜好,传入适合的参数,但是注意这里的第二个参数是一个QToolBar对象,其实QToolBar还有很多的设置属性,比如FlaotingAble,moveAble等,这些可以使你的工具栏实现工具栏在任何可以停靠的位置。
下面是我在PyQt中实现的代码以及效果图:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtCore import * class MainWindow(QMainWindow):
def __init__(self,parent=None):
super(MainWindow,self).__init__(parent)
self.setWindowTitle('Left-ToolBar')
self.resize(1000,618)
self.initUI() def initUI(self):
self.Creat_Menu()
self.Creat_ToolBar() self.widget=QWidget()
self.mainLayout=QHBoxLayout()
#Add diffrent Widget for the CentraWindow self.edit=QTextEdit()
self.mainLayout.addWidget(self.edit) self.widget.setLayout(self.mainLayout)
self.setCentralWidget(self.widget) def Creat_Menu(self):
self.menu=self.menuBar()
file=self.menu.addMenu('File')
file.addAction('New')
file.addAction('Open')
file.addAction('Close Project') tool=self.menu.addMenu('Tool')
tool.addAction('Python')
tool.addAction('C++')
tool.addAction('C') def Creat_ToolBar(self):
self.toolBar=QToolBar()
#MainWindow.addToolBar(QtCore.Qt.LeftToolBarArea, self.toolBar)
self.addToolBar(Qt.LeftToolBarArea,self.toolBar)
self.toolBar.addAction('Edit')
self.toolBar.addAction('Open') if __name__=='__main__':
app=QApplication(sys.argv)
demo=MainWindow()
demo.show()
sys.exit(app.exec())
其实关于Qt和PyQt5实现GUI编程,从根本上来说其方法是一样的(我说的是类中具有的方法),在编写PyQt5的代码时,完全可以参考Qt中的解析。还有一个是个人最近觉得比较重要的:无论是使用PyQt5还是Qt,联合使用UI设计器可以非常方便的开发(因为个人一直觉得用代码开发可以对控件位置精确掌控,而使用UI就像是奇技淫巧,做不到完美,不值得学习,但是我错了!)

Qt与PyQT中设置ToolBar在AllowedArea的显示的更多相关文章
- Qt应用程序中设置字体
Qt应用程序中设置字体 应用程序中经常需要设置字体,例如office软件或者是其他的编辑器软件等等.这里主要涉及到如下几个概念:字体,字号以及风格(例如:粗体,斜体,下划线等等).Qt里面也有对应的类 ...
- Qt设计器中设置border-image注意问题
Qt版本4.8.5,Windows7操作系统,在Qt设计师中通过样式表设计设置widget的border-image属性,debug版本编译会正常显示,但是release版本编译运行就不显示,把图片格 ...
- 关于在Fragment中设置toolbar及菜单的方法
在NoActionBar的主题中onCreateOptionsMenu方法不会运行,这里就需要将toolbar强制转换为ActionBar 在加入toolbar的监听之类后需要在onCreateVie ...
- Qt532.【转】Qt在pro中设置运行时库MT、MTd、MD、MDd,只适合VS版本的Qt
ZC:具体应该设置 什么参数,可以参看 自己转载的文章:"VC.[转]采用_beginthread__beginthreadex函数创建多线程 - CppSkill - 博客园.html&q ...
- 【转】Qt在pro中设置运行时库MT、MTd、MD、MDd,只适合VS版本的Qt
http://blog.csdn.net/caoshangpa/article/details/51416077 一.在pro中设置运行时库 最近在用Qt5.6.0(VS2013版本)调用一份用Vis ...
- k3 cloud中列表字段汇总类型中设置了汇总以后没有显示出汇总值
处理方法,需要bos中的分组列信息中设置求和: 选择对应字段将其从左侧添加到右侧 方法二: 直接针对[价税合计]字段的列表汇总类型进行设置,步骤如下图所示
- QT 在QTabWidget中设置一些调色板
这次所做的项目中需要用到如下功能,点击tableWidget中的子项,将会弹出颜色选值对话框,实现子项的改变,如下图所示: 1.首先,将自己定制的调色板放入tableWidget中 for (int ...
- C#中设置窗口在最前显示而其他窗口不能使用
对程序中的一个Form1处理,让其在打开的情况下,其他窗体都无法使用,全部焦点都在他身上. 1.这种方法最简单,直接调用窗体的模态对话框函数显示窗体 Form1.ShowDialog(): 2.设置窗 ...
- VS2008中设置字体大小和添加显示行号
1.字体设置 菜单->工具->选项->环境->字体和颜色 在字体那一栏可以选字体,VC6.0默认的字体是Fixedsys,字体大小你可以设为12,就与VC6.0的一样的字体了. ...
随机推荐
- 面试题之发散思维能力:如何用非常规方法求1+2+···+n
今天在<剑指offer>里看到了下面这样一个简单且有趣的题,考察程序员的发散思维能力,前提是你对C++相关知识点熟悉,否则是想不出来方案的,分享给大家. 题目:求1+2+···+n,要 ...
- JavaWeb 简单实现客户信息管理系统
项目介绍 本项目使用Jsp+Servlet+MySQL实现 功能介绍 查询客户信息:查询数据库中所有客户信息,分页展示 添加客户信息:创建新客户并添加到数据库中 搜索客户信息:根据用户的输入查询客户信 ...
- 复刻smartbits的国产网络测试工具minismb-使用burst模式
复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数 ...
- Java 容器源码分析之集合类详解
集合类说明及区别 Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtable ├HashMap └W ...
- RedHat Linux下MQ安装步骤及MQ常用命令
1.检查操作系统及内存情况:lsb_release -a; 2 检查java 环境:java -version 3 新建用户空间.用户和组: //创建用户目录 mkdir /home/mqm ...
- sqlplus sys as sysdba
Enter user-name:sys Enter password:password as sysdba --以sys用户登陆的话 必须要加上 as sysdba 子句
- Nodejs编写复制文件及文件夹命令
github地址 use npm i fuzhi -g 复制文件 fuzhi a.js b.js 复制文件夹 fuzhi dirA dirB Wiki 创建一个node命令的两个关键点 1.在pack ...
- webpack+react多页面开发(二)-终极架构
webpack4+react16多页面架构 webpack在单页面打包上应用广泛,以create-react-app为首的脚手架众多,单页面打包通常指的是将业务js,css打包到同一个html文件中, ...
- iOS开源项目周报0413
由OpenDigg 出品的iOS开源项目周报第十六期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. glidin ...
- MVC应用程序播放RealPlayer(rmvb)视频
以前Insus.NET开发asp.net时,一直无法把Realplayer的rmvb格式的视频在aspx网页播放与显示.现在学习ASP.NET MVC了,再次尝试这个,望它能在MVC的应用程序运行. ...