Pyqt QDockWidget 停靠窗体
2015-06-05 18:00
274 查看
网上的一个关于QDockWidget 停靠窗体的教程
代码:
效果:
解释:
停靠窗口1只可在主窗口的左边和右边停靠,停靠窗口2只可在浮动和在右停靠两种状态间切换,并且不可移动,停靠窗口3可实现停靠窗口的各个状态, 停靠窗口4和窗口2叠加
实例化一个dock title 为标题 self 为parent 因为QDockWidget 不添加到布局管理器中 所以我们需要传一个parent 给他
设置dock是否可以关闭拉出等 #参数还有 QDockWidget.DockWidgetClosable 可以关闭 DockWidgetMovable 可以移动
设置dock只能在左边 或者右边显示 #allowedareas 有Qt.LeftDockWidgetArea Qt.RightDockWidgetArea Qt.TopDockWidgetArea Qt.BottomDockWidgetArea Qt.AllDockWidgetAreas
添加一个label控件
添加dock到主窗口第一个参数为显示位置
两个停靠窗口叠加
默认dock2为首标签
更多链接: http://www.linuxidc.com/Linux/2012-06/63652p15.htm
代码:
# -*- 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
相关文章推荐
- QT4.8 不展示JPG图片问题解决办法
- Qt异形按钮的创建
- 读Pyqt4教程,带你入门Pyqt4 _008
- QtCreator的配置文件
- 终极精简编译Qt5,精简OpenGL,QMainWindow,ICU,WebKit等
- 读Pyqt4教程,带你入门Pyqt4 _007
- Qt使用openmp并行化加速程序
- QTP远程运行无法对windos object进行操作
- QT5.4 vs2013静态加载插件的sqlite静态编译
- Qt socket。The bound address is already in use
- qt的一些技巧
- qt 窗口的缩放和滚动条的使用
- QT实现2048小游戏
- Ubuntu 下 Gtk与Qt编译环境安装与配置
- QT 串口接收数据库16进制字符串
- QT QString字符串转16进制串口发送数据
- 2015.6.5 qt学习笔记 accept()概念
- Qt 嵌入式程序 运行时遇到*** glibc detected ***等解决方法
- win7下无法安装QTP-少了Microsoft Visual c++2005 sp1运行时组件
- Qt出现警告 Unescaped backslashes are deprecated!解决办法