停靠窗口-程序员宅基地

技术标签: c/c++  

代码:

 1 #coding: utf-8
 2 from PyQt4.QtCore import *
 3 from PyQt4.QtGui import *
 4 import sys
 5 
 6 QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))
 7 
 8 class MainWidget(QMainWindow):
 9     def __init__(self, parent=None):
10         super(MainWidget, self).__init__(parent)
11         self.setWindowTitle(self.tr("依靠窗口"))
12         #定义一个 QTextEdit 对象作为主窗口,并把此编辑框设为 MainWindow 的中央窗体。
13         te = QTextEdit(self.tr("主窗口"))
14         te.setAlignment(Qt.AlignCenter)
15         self.setCentralWidget(te)
16 
17         #停靠窗口1
18         dock1 = QDockWidget(self.tr("停靠窗口1"), self)
19         dock1.setFeatures(QDockWidget.DockWidgetMovable)
20         dock1.setAllowedAreas(Qt.LeftDockWidgetArea|Qt.RightDockWidgetArea)
21         te1 = QTextEdit(self.tr("窗口 1,可在 Main Window 的左部和右部停靠,不可浮动,不可关闭"))
22         dock1.setWidget(te1)
23         self.addDockWidget(Qt.RightDockWidgetArea, dock1)
24 
25         #停靠窗口2
26         dock2 = QDockWidget(self.tr("停靠窗口2"), self)
27         dock2.setFeatures(QDockWidget.DockWidgetFloatable|QDockWidget.DockWidgetClosable)
28         te2 = QTextEdit(self.tr("窗口2,只可浮动"))
29         dock2.setWidget(te2)
30         self.addDockWidget(Qt.RightDockWidgetArea, dock2)
31 
32         #停靠窗口3
33         dock3 = QDockWidget(self.tr("停靠窗口3"), self)
34         dock3.setFeatures(QDockWidget.DockWidgetFloatable|QDockWidget.DockWidgetClosable)
35         te3 = QTextEdit(self.tr("窗口3,可在Main Window任意位置停靠,可浮动,可关闭"))
36         dock3.setWidget(te3)
37         self.addDockWidget(Qt.RightDockWidgetArea, dock3)
38 
39 app = QApplication(sys.argv)
40 main = MainWidget()
41 main.show()
42 app.exec_()

设置停靠窗口的一般流程为:

  1) 创建一个 QDockWidget 对象的停靠窗体。

  2)设置此停靠窗体的属性,通常调用 setFeatures()及 setAllowedAreas()两个方法。

  3)新建一个要插入停靠窗体的控件,本实例中为 QTextEdit,也可为其他控件,常用的一般为 QListWidget 和 QTextEdit。

  4)把控件插入停靠窗体,调用 QDockWidget 的 setWidget()方法。

  5)使用 addDockWidget()方法在 MainWindow 中加入此停靠窗体。

本实例的 3 个停靠窗体都是按此流程实现的,此处需要重点介绍的是设置停靠窗体状态的方法 setAllowedAreas()和 setFeatures()。

其中 setAllowedAreas()方法设置停靠窗体可停靠的区域,原型如下:

 

  setAllowedAreas (self, Qt.DockWidgetAreas)
参数 Qt.DockWidgetAreas 指定了停靠窗体可停靠的区域,包括以下几种。
  Qt.LeftDockWidgetArea:可在主窗口的左侧停靠。
  Qt.RightDockWidgetArea:可在主窗口的右侧停靠。
  Qt.TopDockWidgetArea:可在主窗口的顶端停靠。
  Qt.BottomDockWidgetArea:可在主窗口的底部停靠。
  Qt.AllDockWidgetArea:可在主窗口任意(以上四个)部位停靠。
  Qt.NoDockWidgetArea:可停靠在插入处。
  各区域设定可采用或(|)的方式进行设定

setFeatures()方法设置停靠窗体的特性,原型如下:
  setFeatures (self, DockWidgetFeatures)
参数 QDockWidgetFeatures 指定停靠窗体的特性,包括以下几种。
  QDockWidget.DockWidgetClosable:停靠窗可关闭,右上角的关闭按钮。
  QDockWidget.DockWidgetMovable:停靠窗可移动。
  QDockWidget.DockWidgetFloatable:停靠窗可浮动。
  QDockWidget.AllDockWidgetFeature:此参数表示拥有停靠窗的所有特性。
  QDockWidget.NoDockWidgetFeature:不可移动,不可关闭,不可浮动。
  此参数也可采用或(|)的方式对停靠窗进行特性的设定

 

转载于:https://www.cnblogs.com/nju2014/p/4540352.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34281537/article/details/94161720

智能推荐

python summary writer_tensorflow中summary操作-程序员宅基地

文章浏览阅读2k次。tf中 tensorboard 工具通过读取在网络训练过程中保存到本地的日志文件实现数据可视化,日志数据保存主要用到 tf.summary 中的方法。tf.summary中summary是tf中的一个py文件,位置在 '/tensorflow/python/summary/' 文件夹下,提供了像tf.summary.scalar、tf.summary.histogram等方法,用来把graph图中..._summary_writer.add_summary()

Vue中实现div编辑效果,及contenteditable设置为plaintext-only与true的区别-程序员宅基地

文章浏览阅读9.6k次,点赞5次,收藏20次。有时候我们希望实现点击一段div内文本时就能直接进行编辑,当然使用文本框、富文本等也可以实现,但终究有些麻烦。目录效果预览参数介绍封装与使用使用效果差异plaintext-only 的效果使用contenteditable = "true" 的效果效果预览今天我给大家介绍的这种方式是直接使用div的 contenteditable属性,即可实现div的文本编辑..._plaintext-only

对标大厂标准CSDN能力认证 and 超级实习生-大厂实习直通车_csdn认证-程序员宅基地

文章浏览阅读8.1k次,点赞41次,收藏61次。对标大厂标准CSDN能力认证 and 超级实习生-大厂实习直通车详情介绍!!!_csdn认证

快速找出System.Management.Automation.dll,c#调用powershell-程序员宅基地

文章浏览阅读772次。public static void InvokeSystemPS(string cmd) { List<string> ps = new List<string>(); ps.Add("Set-ExecutionPolicy RemoteSigned"); ps..._system.management.automation

MacBook键盘符号_苹果电脑箭头符号是哪个键-程序员宅基地

文章浏览阅读1.1k次。图标介绍⌘Command⇧Shift⇪Caps Lock⌥Option = Alt⌃ControlEnter⌫Delete⌦Fn + Delete↑上箭头↓下箭头←左箭头→右箭头⇞Fn + ↑ = Page Up⇟Fn + ↓ = Page DownHomeFn + ←EndFn + →⇥Tab = 右制表符⇤Shift + Tab = 左制表符..._苹果电脑箭头符号是哪个键

相机成像模型——建立过程(世界坐标系,相机坐标系,图像坐标系,图像像素坐标系,四者之间的关系)_相机成像模型的建立-程序员宅基地

文章浏览阅读1.8w次,点赞11次,收藏62次。相机在计算机视觉应用中起着重要作用,作为图像数据来源,影响着后续各个处理步骤。成像模型就是用数学公式刻画整个成像过程,即被拍摄物体空间点到照片成像点之间的几何变换关系。总体上,相机成像可以分为四个步骤:刚体变换、透视投影、畸变校正和数字化图像。 一、刚体变换(从世..._相机成像模型的建立

随便推点

使用 CloudFlare 为 hexo 博客实现 HTTPS-程序员宅基地

文章浏览阅读5.4k次,点赞4次,收藏3次。博客地址之前一直都是默认的 secsilm.github.io,一直想换个自己的域名,正巧看到 NameBeta 上好几个域名都好便宜,就准备买个搞搞,最后挑中了 alanlee.fun 这个域名。把自己的博客域名换成自己买的域名并实现 HTTPS(GitHub Pages 不支持自定义域名 HTTPS),大概需要这么几个步骤(以在 namecheap 上购买域名为例):在 namech...

Centos7 通过SSH使用密钥实现免密登录_centos7生成的公钥密钥对,默认保存在-程序员宅基地

文章浏览阅读633次。转载https://blog.csdn.net/axing2015/article/details/83754785概述 Public Key认证的主要魅力在于认证时承诺不必提供密码就能够同远程系统建立连接。 Public Key认证的基础在于一对密钥,public key和private key,public key对数据进行加密而且只能用于加密,private key 只能对..._centos7生成的公钥密钥对,默认保存在

S32K flash擦除异常以及flash保护 (FLASH_DRV_CommandSequence函数异常)_s32k如何读取flash的保护状态-程序员宅基地

文章浏览阅读3.1k次,点赞4次,收藏27次。对Flash擦除,bit0置为1的过程,擦除完的扇区基本是0xffff…。写入数据,一般是将1置为0.S32K144芯片有512K,地址0-0x0007_ffff,每个扇区的大小是4K,共有128个扇区,这里Flash是Program Flash(P_Flash 程序Flash)。还有Data Flash(D_Flash 数据Flash),有16个扇区,64K。4K的EEPROM。_s32k如何读取flash的保护状态

vmware报:与vmx86 驱动版本不匹配: 期待xxo.o,当前ooo.x 你的驱动程序vmx86.sys 版本不正确。_kali - vmware workstation 与vmx86驱动程序的版本不匹 预期为361.0-程序员宅基地

文章浏览阅读8.3k次。一般是以前安装过旧版本的没卸载,或是所谓绿色虚拟机造成的,1 在虚拟机目录下找vmx86.sys (ctrl+f),, 7系列一般在安装后的main目录下,6系统或更早系统可能躲在某个iso或rar里,但一定要是在虚拟机目录!2 把找到的vmx86.sys轻轻地放到C:\windows\system32\drivers 目录下3 开始,运行,cmd4.在_kali - vmware workstation 与vmx86驱动程序的版本不匹 预期为361.0,实际为398.0。驱动程序"vmx86.sys"的版本不正确

利用pyrealsense获取深度图,并进行像素对齐_pyrealsense2深度值-程序员宅基地

文章浏览阅读6.4k次,点赞4次,收藏32次。系统:Ubuntu16.04python版本:python2.7内核版本:4.13.0realsense SDK:librealsense1.12.1python wrapper:pyrealsense2.2这里的pyrealsense2.2指的是pyrealsense1的2.2版本,并不是pyrealsense2,如图:安装pyrealsense/2.21. 进入..._pyrealsense2深度值

推荐文章

热门文章

相关标签