前言
QDockWidget是一个可以停靠在QMainWindow内的窗口控件,它可以保持在浮动状态或者在指定位置作为子窗口附加到主窗口中,QMainWindow类的主窗口对象保留有一个用于停靠窗口的区域,这个区域在控件的中央周围
QDoCKWidget类中的常用方法
方法
描述
setWidget()
在Dock窗口区域设置QWidget
setFloating()
设置Dock窗口是否可以浮动,如果设置为True,则表示可以浮动
setAlllowedAreas()
设置窗口可以停靠的区域
LeftDockWidgetArea:左侧停靠区域
RightDockWidgetArea:右侧停靠区域
TopDockWidgetArea:顶部停靠区域
BottomDockWidgetArea:底部停靠区域
NoDockWidgetArea:不显示Widget
setFearures()
设置停靠窗口的功能属性
DockWidgetClosable:可关闭
DockWidgetMovable:可移动
DockWidgetFloatable:可漂浮
DockWidgetVerticalTitleBar:在左边显示垂直的标签栏
AllDockWidgetFeatures:具有前三种属性的所有功能
NoDockWidgetFeatures:无法关闭,不能悬浮,不能移动
实例:QDockWidget的使用
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class DockDemo(QMainWindow):
def __init__(self,parent=None):
super(DockDemo, self).__init__(parent)
#设置水平布局
layout=QHBoxLayout()
#实例化菜单栏
bar=self.menuBar()
#创建主菜单file,在其中添加子菜单
file=bar.addMenu('File')
file.addAction('New')
file.addAction('Save')
file.addAction('quit')
#创建QDockWidget窗口(标题,自身窗口)
self.items=QDockWidget('Dockable',self)
#实例化列表窗口,添加几个条目
self.listWidget=QListWidget()
self.listWidget.addItem('Item1')
self.listWidget.addItem('Item2')
self.listWidget.addItem('Item3')
self.listWidget.addItem('Item4')
#在窗口区域设置QWidget,添加列表控件
self.items.setWidget(self.listWidget)
#设置dock窗口是否可以浮动,True,运行浮动在外面,自动与主界面脱离,False,默认浮动主窗口内,可以手动脱离
self.items.setFloating(False)
#设置QTextEdit为中央小控件
self.setCentralWidget(QTextEdit())
#将窗口放置在中央小控件的右侧
self.addDockWidget(Qt.RightDockWidgetArea,self.items)
self.setLayout(layout)
self.setWindowTitle('Dock 例子')
if __name__ == '__main__':
app=QApplication(sys.argv)
demo=DockDemo()
demo.show()
sys.exit(app.exec_())
不重写QDockWidget类
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QMainWindow, QTextEdit, QDockWidget, QPushButton, QApplication
class DockDemo(QMainWindow):
def __init__(self):
super().__init__()
self.docker1=QDockWidget('Docker1', self)
self.docker2=QDockWidget('Docker2', self)
self.textEdit=QTextEdit()
self.setCentralWidget(self.textEdit)
self.btn1=QPushButton('btn1')
self.btn2=QPushButton('btn2')
self.btn1.clicked.connect(self.btn1fun)
self.btn2.clicked.connect(self.btn2fun)
self.docker1.setWidget(self.btn1)
self.docker2.setWidget(self.btn2)
self.addDockWidget(Qt.RightDockWidgetArea,self.docker1)
self.addDockWidget(Qt.LeftDockWidgetArea, self.docker2)
self.setWindowTitle('Dock 例子')
self.resize(400, 300)
def btn1fun(self):
self.textEdit.setText('btn1')
self.docker2.setFloating(True)#开启悬浮状态
def btn2fun(self):
self.textEdit.setText('btn2')
self.docker1.setFloating(True)
if __name__ == '__main__':
app=QApplication(sys.argv)
demo=DockDemo()
demo.show()
sys.exit(app.exec_())
效果:
重写QDockWidget类
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QMainWindow, QTextEdit, QDockWidget, QPushButton, QApplication, QWidget, QVBoxLayout
class docker(QDockWidget):
def __init__(self, parent):
super().__init__(parent)
self.btn1 = QPushButton('btn1')
self.btn2 = QPushButton('btn2')
self.vbox = QVBoxLayout()
self.vbox.addWidget(self.btn1)
self.vbox.addWidget(self.btn2)
self.wgt = QWidget()
self.wgt.setLayout(self.vbox)
self.setWidget(self.wgt)
class DockDemo(QMainWindow):
def __init__(self):
super().__init__()
self.docker = docker(self)
self.textEdit = QTextEdit()
self.setCentralWidget(self.textEdit)
self.docker.btn1.clicked.connect(self.btn1fun)
self.docker.btn2.clicked.connect(self.btn2fun)
self.addDockWidget(Qt.RightDockWidgetArea, self.docker)
self.setWindowTitle('Dock 例子')
self.resize(400, 300)
def btn1fun(self):
self.textEdit.setText('btn1')
def btn2fun(self):
self.textEdit.setText('btn2')
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = DockDemo()
demo.show()
sys.exit(app.exec_())
效果:
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新动态
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]

