【发布时间】:2014-10-06 21:02:13
【问题描述】:
我找不到如何隐藏我的 Qdockwidgets 的标题栏:
我在参考文献中找到了这个:
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.
这在很多地方:
dockWidget->setTitleBarWidget(new QWidget());
但是如何实际使用它们呢?我根本找不到任何简单的代码示例,即使在参考文献中也没有显示这些代码,而且我的所有尝试都以各种错误告终。 在整个页面中:http://pyqt.sourceforge.net/Docs/PyQt4/qdockwidget.html#setTitleBarWidget 根本没有什么可以告诉我如何使用它:
QDockWidget.setTitleBarWidget (self, QWidget widget)
如果我阅读了文档,我应该将“小部件”替换为 0,这样我就不会显示标题栏了
self.dockWdg1.setTitleBarWidget(self, QtGui.QWidget(0))# If I don't add QtGui in front of QWidget it don't know what is QWidget
给我这个错误:
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 引用更糟糕,这不是一件小事。
我的完整代码:
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()
【问题讨论】:
标签: python-3.x pyqt4