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 ...
随机推荐
- OpenCV进阶之路:一个简化的视频摘要程序
一.前言 视频摘要又称视频浓缩,是对视频内容的一个简单概括,先通过运动目标分析,提取运动目标,然后对各个目标的运动轨迹进行分析,将不同的目标拼接到一个共同的背景场景中,并将它们以某种方式进行组合.视频 ...
- 装b指南
提溜一个糖水黄桃罐头瓶,放在桌边,坐下以后,脖子略微后仰,翘着二郎腿,低头盯着屏幕看需求. 最好点一根烟,牌子无所谓,能冒烟就行.要得就是云山雾绕的感觉,从烟雾中眯着眼睛看出去,一副胸有成竹的样. 一 ...
- Java计算程序运行时间
public static void main(String[] args) { // TODO Auto-generated method stub long nd = 1000 * 24 * 60 ...
- hadoop小试
standard mode(标准模式) 下载 wget http://mirror.bit.edu.cn/apache/hadoop/common/stable/hadoop-2.7.2.tar.gz ...
- Redis系列-配置文件小结
如果不指定配置文件,Redis也可以启动,此时,redis使用默认的内置配置.不过在正式环境,常常通过配置文件[通常叫redis.conf]来配置redis. redis.conf配置格式如下: ke ...
- 浅探委托(delegate)和事件(event)
.NET Framework通过委托提供了一种回调函数机制. internal delegate void FeedBack(Int32 value); 内部委托FeedBack的声明,一个委托要指定 ...
- jq鼠标隐藏显示的方法
<div style="width:300px; float:left;"> <div onmouseover="testOnmouseO ...
- Linux下查看机器公网IP
http://jimingsong.iteye.com/blog/1188905 curl http://ifconfig.me
- 使用宏批量将多个csv文件转成excel文件
在一个压缩文件中有100多个csv文件,要求要将此100多个csv文件转成excel文件,名字命名不变,有三种方式: 1. 傻不拉几的复制粘贴法 2. 一个一个打开csv文件,另存为xls文件,工作量 ...
- 服务器×××上的MSDTC不可用解决办法
MSDTC(分布式交易协调器),协调跨多个数据库.消息队列.文件系统等资源管理器的事务.该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和M ...