您的位置:首页 > 文旅 > 旅游 > Qt:19.浮动窗口/子窗口(子窗口介绍、代码方式创建子窗口、设置子窗口标题、为子窗口添加控件、设置子窗口停靠位置)

Qt:19.浮动窗口/子窗口(子窗口介绍、代码方式创建子窗口、设置子窗口标题、为子窗口添加控件、设置子窗口停靠位置)

2024/10/5 21:18:42 来源:https://blog.csdn.net/weixin_63716012/article/details/140359704  浏览:    关键词:Qt:19.浮动窗口/子窗口(子窗口介绍、代码方式创建子窗口、设置子窗口标题、为子窗口添加控件、设置子窗口停靠位置)

目录

1.子窗口介绍:

2.代码方式创建子窗口:

3.设置子窗口标题:

4.为子窗口添加控件:

5.设置子窗口停靠位置。


1.子窗口介绍:

  • 在 Qt 中,可以创建和管理子窗口(子窗口体)以实现多窗口应用程序。

  • 子窗口可以是对话框、独立窗口或者 MDI(多文档界面)子窗口。

  • 通过QDockWidget类创建子窗口。

2.代码方式创建子窗口:

  • 创建子窗口对象:QDockWidget* dockWidget=new QDockWidget();
  • 将子窗口添加到主窗口:this->addDockWidget(Qt::LeftDockWidgetArea,dockWidget);

        

3.设置子窗口标题:

  • 设置子窗口标题:dockWidget->setWindowTitle("这是子窗口的标题");

        

4.为子窗口添加控件:

  • 为子窗口添加控件,不能直接给这个窗口设置子控件。
  • 首先要先创建一个单独的QWidget对象,然后将控件设置到这个QWidget对象中。
  • 再把这个QWidget对象设置到dockWidget中。
    //为dockWidget赋予QWidget对象QWidget* container=new QWidget();dockWidget->setWidget(container);
  • 由于一个dockWidget只能包含一个QWidget对象,所以要想新增控件,就还是要去QWidget对象中新增。
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QDockWidget* dockWidget=new QDockWidget();this->addDockWidget(Qt::LeftDockWidgetArea,dockWidget);dockWidget->setWindowTitle("这是子窗口的标题");//为dockWidget赋予QWidget对象QWidget* container=new QWidget();dockWidget->setWidget(container);//创建两个控件QLabel* label=new QLabel("这是一个label控件");QPushButton* pushButton=new QPushButton("这是一个按钮");//创建一个布局管理利器,并且设置到QWidget对象中QVBoxLayout* layout=new QVBoxLayout();container->setLayout(layout);//将两个控件添加到布局管理器中layout->addWidget(label);layout->addWidget(pushButton);}

5.设置子窗口停靠位置。

  • 通过setAllowAreas(Qt::DockWidgetArea | Qt::DockWidgetArea)方法,设置允许停靠的位置。默认为Qt::LeftDockWidgetArea——左。
  • 可以设置四个位置,默认位置为上:
  • Qt::TopDockWidgetArea——上
  • Qt::BottomDockWidgetArea——下
  • Qt::LeftDockWidgetArea——左
  • Qt::RightDockWidgetArea——右

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com