首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QDockWidget隐藏标题栏

QDockWidget隐藏标题栏
EN

Stack Overflow用户
提问于 2014-10-06 21:02:13
回答 2查看 3.1K关注 0票数 1

我找不到如何隐藏我的Qdockwidget的标题栏:

我在参考资料中发现了这一点:

代码语言:javascript
复制
QDockWidget.setTitleBarWidget (self, QWidget widget)

The widget argument has it's ownership transferred to Qt.

Sets an arbitrary widget as the dock widget's title bar. If widget is 0, any custom title bar widget previously set on the dock widget is removed, but not deleted, and the default title bar will be used instead.

在很多地方都是这样:

代码语言:javascript
复制
dockWidget->setTitleBarWidget(new QWidget());

但如何真正使用它们呢?我只是找不到任何简单的代码示例来显示这些代码,甚至在引用中也没有,而且我的所有尝试都以各种错误告终。在整个页面:http://pyqt.sourceforge.net/Docs/PyQt4/qdockwidget.html#setTitleBarWidget中,没有什么可以告诉我如何使用它:

代码语言:javascript
复制
QDockWidget.setTitleBarWidget (self, QWidget widget)

如果我阅读文档,我应该将“小部件”替换为0,这样就不会显示标题栏。

代码语言:javascript
复制
self.dockWdg1.setTitleBarWidget(self, QtGui.QWidget(0))# If I don't add QtGui in front of QWidget it don't know what is QWidget 

告诉我这个错误:

代码语言:javascript
复制
TypeError: QWidget(QWidget parent=None, Qt.WindowFlags flags=0): argument 1 has unexpected type 'int'

另一个问题是,是否有人使用这些引用:?http://pyqt.sourceforge.net/Docs/PyQt4/qdockwidget.html#setTitleBarWidget

我的问题可能看起来很奇怪,但我发现这些引用是如此的不完整(没有代码示例),而且解释太模糊了,我真的想知道我是否在寻找正确的一个,特别是在另一个方面:http://srinikom.github.io/pyside-docs/PySide/QtGui/QDockWidget.html#PySide.QtGui.QDockWidget和pySide,它看起来要好得多。PyQT引用甚至比MaxScript引用更糟糕,这不是小事一桩。

我的完整代码:

代码语言:javascript
复制
import sys, random
from PyQt4 import QtCore, QtGui
from PyQt4.QtGui import QPalette, QBrush, QPixmap





class MainWin(QtGui.QMainWindow):

     def __init__(self):
        super(MainWin, self).__init__()

        self.initUI()


     def initUI(self):


        #central widget
        self.theboard = Board(self)
        self.setCentralWidget(self.theboard)


          #dock1 Left Dock
        self.dockWdg1 = LeftDock(self)
        #Use SizeQWidget()  to define the initial size of QDockWidget
        self.content1 = SizeQWidget()
        self.dockWdg1.setWidget(self.content1)
        self.dockWdg1.setFeatures(self.dockWdg1.NoDockWidgetFeatures)
        self.addDockWidget(QtCore.Qt.LeftDockWidgetArea, self.dockWdg1)
        self.dockWdg1.setTitleBarWidget(self, QtGui.QWidget(0))# If I don't add QtGui in front of QWidget it don't know what is QWidget

        self.resize(360, 760)
        self.setWindowTitle('Test')
        self.show()



class LeftDock(QtGui.QDockWidget):

    def __init__(self, parent):
        super(LeftDock, self).__init__(parent)
        self.initLeftDock()


    def initLeftDock(self):

        self.setGeometry(300, 300, 200, 120)
        #self.setWindowTitle('LeftDock')




class Board(QtGui.QFrame):


    def __init__(self, parent):
        super(Board, self).__init__(parent)

        self.initBoard()

    def initBoard(self):

        print("ddd")


#Dummy QWidget used by QDockWidget for defining initial size.
class SizeQWidget(QtGui.QWidget):
       def sizeHint(self):
        return QtCore.QSize(100, 75)



def main():

    app = QtGui.QApplication([])
    mw = MainWin()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-06 21:07:32

PyQt文档是从C++文档自动创建的。我总是只使用C++文档。

因此,这些医生的整体素质并不很好。

现在谈谈你手头的主要问题。

注意,QtGui.QWidget将一个QObject*作为第一个参数(新创建的对象的父对象)。还请注意,一个空指针是用None而不是0来表示的。

然后,我们需要知道self通常是通过调用实例上的方法隐式传递的。(self在PyQt的上下文中就像您在Python中遇到的所有其他self一样)。

因此,这样做是可行的:

代码语言:javascript
复制
        self.dockWdg1.setTitleBarWidget(QtGui.QWidget(None))

就我个人而言,我会做一些不同的事情:

代码语言:javascript
复制
        self.dockWdg1.setTitleBarWidget(QtGui.QWidget(self.dockWdg1))

也就是说,将标题栏小部件的父部件设置为dock小部件本身,从而保留一个很好的对象层次结构。

我还可能注意到,“删除”一个停靠小部件的标题栏小部件,将其替换为一个不可见的(大小为零)小部件,就不可能使浮动。

票数 6
EN

Stack Overflow用户

发布于 2020-03-04 07:46:11

我用这个把它们全部隐藏在c++中

代码语言:javascript
复制
for (auto &dock:findChildren<QDockWidget*>())
  dock->setTitleBarWidget(new QWidget);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26224812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档