Pyqt QDockWidget 停靠窗体
网上的一个关于QDockWidget 停靠窗体的教程
代码:
# -*- coding: utf-8 -*-
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8")) class MainWidget(QMainWindow):
def __init__(self,parent=None):
super(MainWidget,self).__init__(parent)
self.setWindowTitle(self.tr("依靠窗口")) te=QTextEdit(self.tr("主窗口"))
te.setAlignment(Qt.AlignCenter)
self.setCentralWidget(te) #停靠窗口1
dock1=QDockWidget(self.tr("停靠窗口1"),self)
dock1.setFeatures(QDockWidget.DockWidgetMovable)
dock1.setAllowedAreas(Qt.LeftDockWidgetArea|Qt.RightDockWidgetArea)
te1=QTextEdit(self.tr("窗口1,可在Main Window的左部和右部停靠,不可浮动,不可关闭"))
dock1.setWidget(te1)
self.addDockWidget(Qt.RightDockWidgetArea,dock1) #停靠窗口2
dock2=QDockWidget(self.tr("停靠窗口2"),self)
dock2.setFeatures(QDockWidget.DockWidgetFloatable|QDockWidget.DockWidgetClosable)
te2=QTextEdit(self.tr("窗口2,只可浮动"))
dock2.setWidget(te2)
self.addDockWidget(Qt.RightDockWidgetArea,dock2) #停靠窗口4
dock4=QDockWidget(self.tr("停靠窗口4"),self)
dock4.setFeatures(QDockWidget.DockWidgetFloatable|QDockWidget.DockWidgetClosable)
widget4 = QWidget() # 可引入外部Qwidget
dock4.setWidget(widget4)
self.addDockWidget(Qt.RightDockWidgetArea,dock4) self.tabifyDockWidget(dock2, dock4)
dock2.raise_() #停靠窗口3
dock3=QDockWidget(self.tr("停靠窗口3"),self)
dock3.setFeatures(QDockWidget.AllDockWidgetFeatures)
te3=QTextEdit(self.tr("窗口3,可在Main Window任意位置停靠,可浮动,可关闭"))
dock3.setWidget(te3)
self.addDockWidget(Qt.BottomDockWidgetArea,dock3)
if __name__ == '__main__':
app=QApplication(sys.argv)
main=MainWidget()
main.show()
app.exec_()
效果:
解释:
停靠窗口1只可在主窗口的左边和右边停靠,停靠窗口2只可在浮动和在右停靠两种状态间切换,并且不可移动,停靠窗口3可实现停靠窗口的各个状态, 停靠窗口4和窗口2叠加
实例化一个dock title 为标题 self 为parent 因为QDockWidget 不添加到布局管理器中 所以我们需要传一个parent 给他
dock1=QDockWidget(self.tr("停靠窗口1"),self)
设置dock是否可以关闭拉出等 #参数还有 QDockWidget.DockWidgetClosable 可以关闭 DockWidgetMovable 可以移动
dock1.setFeatures(QDockWidget.DockWidgetMovable)
设置dock只能在左边 或者右边显示 #allowedareas 有Qt.LeftDockWidgetArea Qt.RightDockWidgetArea Qt.TopDockWidgetArea Qt.BottomDockWidgetArea Qt.AllDockWidgetAreas
dock1.setAllowedAreas(Qt.LeftDockWidgetArea|Qt.RightDockWidgetArea)
添加一个label控件
dock1.setWidget(te1)
添加dock到主窗口第一个参数为显示位置
self.addDockWidget(Qt.RightDockWidgetArea,dock1)
两个停靠窗口叠加
self.tabifyDockWidget(dock2, dock4)
默认dock2为首标签
dock2.raise_()
更多链接:http://www.linuxidc.com/Linux/2012-06/63652p15.htm
Pyqt QDockWidget 停靠窗体的更多相关文章
- 第15.38节 PyQt(Python+Qt)入门学习:containers容器类部件QDockWidget停靠窗功能详解
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QDockWidget类提供了一个可以停靠在QMainWin ...
- PyQt(Python+Qt)学习随笔:QDockWidget停靠窗相关的信号
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 QDockWidget的信号包括与属性变更相关的allowedArea ...
- 第三十一章、containers容器类部件QDockWidget停靠窗功能介绍
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一.概述 QDockWidget类提供了一个可以停靠在QMainWin ...
- WeifenLuo组件中如何设置停靠窗体的宽度
在项目中使用了WeifenLuo.WinFormsUI.Docking组件,窗体停靠效果非常棒. 现在项目出现了这样的需求,希望可以控制停靠窗体的宽度,因为默认的宽度往往会造成停靠窗体的内容显示不完全 ...
- (十九)c#Winform自定义控件-停靠窗体
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- PyQt(Python+Qt)学习随笔:QMainWindow的addDockWidget方法增加QDockWidget停靠窗到主窗口
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 DockWidget除了放在QMainWindow窗口内外,也可以放在 ...
- PyQt(Python+Qt)学习随笔:QMainWindow的splitDockWidget方法将QDockWidget停靠窗分割排列
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 主窗口的splitDockWidget方法用于将一个停靠窗占据的空间分 ...
- PyQt(Python+Qt)学习随笔:通过QMainWindow的resizeDocks方法调整QDockWidget停靠窗大小
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 QMainWindow的resizeDocks用于将QMainWind ...
- PyQt(Python+Qt)学习随笔:QDockWidget停靠部件的dockWidgetArea和docked属性
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 dockWidgetArea和docked属性这两个属性在Design ...
随机推荐
- git 教程(3)--时光机穿梭
我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容 Git is a distributed version co ...
- MS DOS 命令大全
刚好看到留下来以备用: 一)MD——建立子目录命令 1.功能:创建新的子目录 2.类型:内部命令 3.格式:MD[盘符:][路径名]〈子目录名〉 4.使用说明: (1)“盘符”:指定要建立子目录的磁盘 ...
- python gui之tkinter界面设计pythonic设计
ui的设计,控件id的记录是一件比较繁琐的事情. 此外,赋值和读取数据也比较繁琐,非常不pythonic. 有没有神马办法优雅一点呢?life is short. 鉴于控件有name属性,通过dir( ...
- Colorful tree
cnbb 我被数组清零卡了一天.. 子树改色询问子树颜色数.. 先考虑颜色为x的节点对祖先答案的贡献,那么我们考虑把所有这些节点都搞出来,按dfs序排序,然后考虑每个节点a掌管的祖先是它和按dfs序的 ...
- DevStack安装时报“download of get-pip.py failed”
ref from : http://www.voidcn.com/blog/ldli8979/article/p-5005958.html 这个可能会有多种原因造成.网上搜了一下,有人说需要手动下载, ...
- python之errno
http://www.cnblogs.com/Security-Darren/p/4168392.html errno.EWOULDBLOCK 操作将会阻塞
- 通过代理连接go01ge
日本:https://pac.mcplay.cn/jp.pac台湾:https://pac.mcplay.cn/tw.pac如果想上Google可以试试简单的方法,在ie的代理自动配置脚本设置这个p ...
- MongoDB 分片管理(不定时更新)
背景: 通过上一篇的 MongoDB 分片的原理.搭建.应用 大致了解了MongoDB分片的安装和一些基本的使用情况,现在来说明下如何管理和优化MongoDB分片的使用. 知识点: 1) 分片的配置和 ...
- Java for LeetCode 208 Implement Trie (Prefix Tree)
Implement a trie with insert, search, and startsWith methods. Note: You may assume that all inputs a ...
- 【Android】如何将eclipse工程导入studio
1.eclipse工程右键->export->Generate Gradle build files 2.studio->New->import project->选择工 ...