0

我有一个 MainWindow.cpp 类,其中显示了多个发出 clicked() 信号的图像。单击后,我想在 MainWindow 中打开一个固定大小的小部件,并且我希望这个小部件能够被拖动,只要它留在 MainWindow 类中。

我正在查看示例代码来尝试编写这个小部件类,特别是Qt MainWindow Example。但是,一旦在显示器周围拖动其中一个停靠窗口,操作系统特定的标题栏(它允许您最大化、最小化和关闭窗口)就会显示出来。我不希望显示此标题栏。

我将如何创建此类可拖动小部件?

4

1 回答 1

0

检查setTitleBarWidget

设置为 void 小部件将起作用:

It is not possible to remove a title bar from a dock widget. 
However, a similar effect can be achieved by setting a default constructed QWidget 
as the title bar widget.

编辑:应要求:

yourDockableWidget->setTitleBarWidget( new QWidget( yourDockableWidget ) );

在您下面的示例中,您可以在构造函数中执行此操作:

ColorSwatch::ColorSwatch(const QString &colorName, QWidget *parent, Qt::WindowFlags flags)
: QDockWidget(parent, flags)
{
/*...*/

setTitleBarWidget( new QWidget( this ) );

/*...*/
}

现在您的小部件在取消停靠时不会有 SO 标题栏;

于 2013-04-22T08:59:32.633 回答