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