我有一个MainWindow.cpp类,显示多个图像,发出clicked()信号。点击后我想在MainWindow中打开一个固定大小的小部件,我希望只要它停留在MainWindow类中,就可以拖动这个小部件。
我正在查看示例代码以尝试编写此窗口小部件类,尤其是Qt MainWindow Example。但是,一旦在显示器周围拖动其中一个dockwindows,就会显示操作系统特定的标题栏(允许您最大化,最小化和关闭窗口)。我不希望显示这个标题栏。
我如何创建这类可拖动的小部件?
答案 0 :(得分:0)
设置为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标题栏;