• QT QMdiArea控件 使用详解


            本文详细的介绍了QMdiArea控件的各种操作,例如:新建界面源代码添加界面移除一个子窗口设置活动子窗口子窗口级联排列、子窗口平铺排列、关闭当前子窗口、关闭当前子窗口、返回当前子窗口、返回当前子窗口、返回子窗口列表信号槽、单击信号、其它文章等等操作。

            实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既费时又费力。QMdiArea(Multiple Document Interface Area)提供了一个可以同时显示多个文档窗口的区域。

            本系列QT全面详解文章目前共有三十五篇,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。

     本文作者原创,转载请附上文章出处与本文链接。

    QT QMdiArea控件 使用详解目录

    1 新建界面

    2 源代码

    3 添加界面

    4 移除一个子窗口

    5 设置活动子窗口

    6 子窗口级联排列

    7 子窗口平铺排列

    8 关闭当前子窗口

    9 关闭所有子窗口

    10 返回当前子窗口

    11 返回当前子窗口

    12 返回子窗口列表

    13 信号槽

    14 单击信号

    15 其它文章


    1 新建界面

    2 源代码

    1. #ifndef MAINWINDOW_H
    2. #define MAINWINDOW_H
    3. #include
    4. #include
    5. #include
    6. #include
    7. //加入GBK申明,否则中文乱码 全局使用GBK文件操作因为有中文所以使用
    8. #pragma execution_character_set("utf-8")
    9. QT_BEGIN_NAMESPACE
    10. namespace Ui { class MainWindow; }
    11. QT_END_NAMESPACE
    12. class MainWindow : public QMainWindow
    13. {
    14. Q_OBJECT
    15. public:
    16. MainWindow(QWidget *parent = nullptr);
    17. ~MainWindow();
    18. private slots:
    19. void subWindowAct(QMdiSubWindow* subWindow);
    20. private:
    21. Ui::MainWindow *ui;
    22. QString Title;
    23. QString Version;
    24. QString BlogText;
    25. QMdiSubWindow* subWindow1;
    26. QMdiSubWindow* subWindow2;
    27. QMdiSubWindow* subWindow3;
    28. };
    29. #endif // MAINWINDOW_H

    3 添加界面

    1. subWindow1 = new QMdiSubWindow;
    2. subWindow2 = new QMdiSubWindow;
    3. subWindow3 = new QMdiSubWindow;
    4. subWindow1->setWidget(new QTextEdit(QString("This is window 1")));
    5. subWindow2->setWidget(new QTextEdit(QString("This is window 2")));
    6. subWindow3->setWidget(new QTextEdit(QString("This is window 3")));
    7. ui->mdiArea->addSubWindow(subWindow1);
    8. ui->mdiArea->addSubWindow(subWindow2);
    9. ui->mdiArea->addSubWindow(subWindow3);

    4 移除一个子窗口

    1. //从QMdiArea中移除一个子窗口,但不删除它。
    2. ui->mdiArea->removeSubWindow(subWindow1);

    5 设置活动子窗口

    1. //设置当前活动的子窗口。
    2. ui->mdiArea->setActiveSubWindow(subWindow2);

    6 子窗口级联排列

    1. //将子窗口以级联的方式排列。
    2. ui->mdiArea->cascadeSubWindows();

    7 子窗口平铺排列

    1. //将子窗口以平铺的方式排列。
    2. ui->mdiArea->tileSubWindows();

    8 关闭当前子窗口

    1. //关闭当前活动的子窗口。
    2. ui->mdiArea->closeActiveSubWindow();

    9 关闭所有子窗口

    1. //关闭所有的子窗口。
    2. //ui->mdiArea->closeAllSubWindows();

    10 返回当前子窗口

    1. //返回当前活动的子窗口
    2. ui->mdiArea->activeSubWindow(); //QMdiSubWindow*

    11 返回当前子窗口

    1. //返回当前的子窗口
    2. ui->mdiArea->currentSubWindow();//QMdiSubWindow*

    12 返回子窗口列表

    1. //返回子窗口的列表
    2. ui->mdiArea->subWindowList(); //QList

    13 信号槽

    1. QObject::connect(ui->mdiArea, &QMdiArea::subWindowActivated, this, &MainWindow::subWindowAct);
    2. void MainWindow::subWindowAct(QMdiSubWindow* subWindow)
    3. {
    4. if (subWindow) {
    5. // 获取活动的子窗口的指针subWindow,并进行相应的操作
    6. // 例如,可以获取子窗口的标题、内容等信息
    7. QString windowTitle = subWindow->windowTitle(); qDebug() << "子窗口标题:" << windowTitle;
    8. QWidget *windowContent = subWindow->widget(); qDebug() << "子窗口内容:" << windowTitle;
    9. } else {
    10. // 当没有活动的子窗口时的处理逻辑
    11. }
    12. }

    14 单击信号

    1. //void mousePressEvent(QMouseEvent *event) override
    2. //{
    3. // if (event->button() == Qt::LeftButton) {
    4. // QMdiSubWindow *subWindow = subWindowAt(event->pos());
    5. // if (subWindow) {
    6. // // 处理单击窗口事件
    7. // }
    8. // }
    9. // QMdiArea::mousePressEvent(event);
    10. //}

    15 其它文章

    QT TextEdit控件_双子座断点的博客-CSDN博客_qt textedit

    QT QComboBox使用详解_双子座断点的博客-CSDN博客

    QT QtableView操作详解_双子座断点的博客-CSDN博客_qtableview增删改查

    Qt QStandardItemModel(1.超级详细用法)_双子座断点的博客-CSDN博客_qstandardmodel

    Qt QStandardItemModel(2.超级详细函数)_双子座断点的博客-CSDN博客_qstandarditemmodel点击事件

    QT QRadioButton使用详解_双子座断点的博客-CSDN博客_qt radiobutton

    QT QLineEdit使用详解_双子座断点的博客-CSDN博客_qt qlineedit

    Qt QMessageBox使用详解_双子座断点的博客-CSDN博客_qt message

    QChart折线图、饼状图、条形图、曲线图_双子座断点的博客-CSDN博客_qchart样式

    QChart属性详解_双子座断点的博客-CSDN博客_setanimationoptions

    QCharts QValueAxis使用_双子座断点的博客-CSDN博客_qvalueaxis

    Qt 5 等待提示框(开源 动态图)_双子座断点的博客-CSDN博客_qt 等待对话框

    QtDataVisualization 数据3D可视化_双子座断点的博客-CSDN博客_qtdatavisualizatio

    QT QSpinBox 整数计数器控件 使用详解_双子座断点的博客-CSDN博客
    QT QDoubleSpinBox 浮点计数器控件(使用详解)_双子座断点的博客-CSDN博客_qdoublespinbox信号槽
    QT QSlider、QHorizontalSlider、QVerticalSlider 控件 使用详解_双子座断点的博客-CSDN博客_qslider设置步长

    QT QTabWidget 控件 使用详解_双子座断点的博客-CSDN博客

    QT QCalendarWidget控件 使用详解_双子座断点的博客-CSDN博客

    QT QStackedWidget 控件 使用详解_双子座断点的博客-CSDN博客

    QT QVBoxLayout 垂直布局控件_双子座断点的博客-CSDN博客

    QT QHBoxLayout 水平布局控件_双子座断点的博客-CSDN博客
    QT QGridLayout网格布局控件_双子座断点的博客-CSDN博客

    QT QVerticalSpacer 弹簧控件_双子座断点的博客-CSDN博客
    QT QHorizontalSpacer弹簧控件_双子座断点的博客-CSDN博客
    QT QLine 使用详解_双子座断点的博客-CSDN博客
    QT QFontComboBox 使用详解_双子座断点的博客-CSDN博客

    QT QScrollArea控件 使用详解_双子座断点的博客-CSDN博客

    QT QToolBox控件使用详解_双子座断点的博客-CSDN博客

    QT QFrame控件使用详解_双子座断点的博客-CSDN博客

  • 相关阅读:
    软件性能测试分析与调优实践之路-Java应用程序的性能分析与调优-手稿节选
    文件操作安全之-目录穿越原理篇
    go语言中比较函数 reflect.DeepEqual(a any,b any) 注意小坑
    STM32之HAL开发——CubeMX串行Flash文件系统源码讲解
    道可云元宇宙每日资讯|安踏发布“羽龙元宇宙”时装秀
    深入创新,共建原生 | 「DaoCloud 道客」与华钦科技签署合作备忘录
    vue video播放m3u8源
    OpenCV 张氏标定法
    git学习
    PLL与DLL的区别
  • 原文地址:https://blog.csdn.net/qq_37529913/article/details/132706110