可拖动的QWidget

时间:2013-04-22 06:48:26

标签: c++ qt

我有一个MainWindow.cpp类,显示多个图像,发出clicked()信号。点击后我想在MainWindow中打开一个固定大小的小部件,我希望只要它停留在MainWindow类中,就可以拖动这个小部件。

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

我如何创建这类可拖动的小部件?

1 个答案:

答案 0 :(得分: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标题栏;