1.方法

原理其实很简单,和在窗口上动态(代码的形式)添加控件的方法一样,但需要设置一下子窗口的属性:

在子窗口构造函数中添加代码:

setWindowFlags(Qt::FramelessWindowHint);

作用:隐藏子窗口的标题栏和边框,如果不隐藏的话,子窗口无法嵌套到其它控件上面!

2.举例

在项目中添加一个子窗口(sub1)

子窗口界面设计:

​​​​​​​

然后代码如下:

2.1.主窗口.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include "sub1.h"
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);//virtual bool event(QEvent *e) override;~MainWindow();private slots:void on_pushButton_clicked();void on_pushButton_2_clicked();private:Ui::MainWindow *ui;Sub1 *s1;
};
#endif // MAINWINDOW_H

2.2.主窗口.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"#include "sub1.h"
#include "ui_sub1.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);s1 = new Sub1(ui->pushButton_3);}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{s1->show();
}void MainWindow::on_pushButton_2_clicked()
{s1->hide();
}

2.3.子窗口.h

#include "sub1.h"
#include "ui_sub1.h"Sub1::Sub1(QWidget *parent) :QMainWindow(parent),ui(new Ui::Sub1)
{setWindowFlags(Qt::FramelessWindowHint);//Qt::CustomizeWindowHint|ui->setupUi(this);
}Sub1::~Sub1()
{delete ui;
}

2.4.子窗口.cpp

​
#include "sub1.h"
#include "ui_sub1.h"Sub1::Sub1(QWidget *parent) :QMainWindow(parent),ui(new Ui::Sub1)
{setWindowFlags(Qt::FramelessWindowHint);//Qt::CustomizeWindowHint|ui->setupUi(this);
}Sub1::~Sub1()
{delete ui;
}​

3.main.cpp

#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

4.运行效果

在pushbutton3(最右边控件)上面显示子窗口,也可以显示在其它控件上,方法几乎一样!

QT中如何在主窗口中添加子窗口相关推荐

  1. C语言编程>第六周 ① 编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。 在主函数中调用该函数计算出这n个整数之和。

    例题:编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中. 在主函数中调用该函数计算出这n个整数之和. 代码如下: /*代码分析:录入函数需要两个参数:一个参数是需要用来存储数字的数组, ...

  2. qt如何把父窗口的变量传给子窗口_父窗口和iframe子窗口之间相互传递参数和调用函数或方法...

    1.父窗口向子窗口传递参数: 可以在url中添加参数:2.html?a=1&b=2&c=3 然后在子页面上可用js解析,提供一个函数: function getQueryStr(sAr ...

  3. 主窗口刷新,子窗口闪烁

    问题:主窗口刷新,子窗口闪烁 解决方案:主窗口创建时,传WS_CLIPCHILDREN 转载于:https://www.cnblogs.com/chunyou128/p/3739193.html

  4. C#关闭子窗口而不释放子窗口对象的问题解决

    在网上找来一些方式,感觉还都不错,下面给出方式: 在线扫描相机的调试过程中,需要开辟调试界面来进行位置的配置.调试结束后,一种常用的方式是将调试参数保存并在下次启动时加载.另一种简单方式是直接使用该参 ...

  5. window.showModalDialog模式窗口无法在子窗口访问解决办法

    window.showModalDialog打开的模式窗口无法在子窗口访问 如:window.showModalDialog("A.aspx", null, "help: ...

  6. C#中怎样在ToolStripMenuItem下再添加子级菜单

    场景 在右键菜单ContextMenuStrip下添加子菜单选项可以通过 ContextMenuStrip menuStrip ToolStripMenuItem mnuChartOption = n ...

  7. [PYQT5] 主窗口弹出子窗口

    需求: 在PYQT5中,点击主窗口中的按钮,弹出子窗口. 测试代码: 例1: 在主窗口添加按钮,并把按钮信号关联槽,在槽函数中创建子窗口对象赋值到普通变量,并调用其 show 方法. from PyQ ...

  8. Python PyQt5中弹出子窗口,解决子窗口一闪而过

    方式一:槽函数中创建子窗口对象,赋值到普通变量 在主窗口添加按钮,并把按钮信号关联槽,在槽函数中创建子窗口对象赋值到普通变量,并调用其 show 方法. from PyQt5.QtWidgets im ...

  9. 使窗口(和 MDI 子窗口)的关闭按钮变灰的方法 - 回复 梦想成真

    问题来源: http://www.cnblogs.com/del/archive/2008/06/14/1221980.html#1225922 //这样就可以使当前窗口的关闭按钮变灰, 但系统菜单中 ...

最新文章

  1. 表迁移工具的选型-复制ibd的方法-传输表空间
  2. 网络钓鱼大讲堂 Part4 | 网络钓鱼攻击战术
  3. ELK之elasticsearch5.6的安装和head插件的安装
  4. Linux中chown和chmod的区别和用法
  5. 怎么在电脑上看磁盘分配单元的大小_电脑磁盘到底该不该分区?怎么分区?
  6. SO(Service Oriented)的四个原则
  7. STM32控制AD7124采集调试流程
  8. js 修改html编码,Javascript 中对HTML编码和解码的方法
  9. 适合小白的word基本操作
  10. python实现协同过滤算法
  11. HEVC/H.265与AVC/H.264对比总结
  12. cdrom是什么意思_开启电脑时出现CDROM是什么意思
  13. latex在参考文献表中不输出网址和doi
  14. 【ModuleNotFoundError 与 ImportError】之 most likely due to a circular import
  15. 《江畔独步寻花》教学设计
  16. 1、 输入长方形的长和宽,编程求该长方形的周长和面积
  17. Android-O wifi扫描机制及功耗优化
  18. arduino处理中频信号_接收机的中频处理技术
  19. 不确定性下的判断:启发法和偏见
  20. 低版本Excel的多条件查询拼接

热门文章

  1. Redis命令介绍之键值对操作
  2. python循环之for循环
  3. 三个问题,决定百度能否成为全球智能音箱第一大厂
  4. python前端图表框架_python-django与前端echarts图表传参
  5. 基于SSM和Boostrap实现的电影评论网站设计
  6. 六一儿童节的群发语!
  7. 网件WNR2200 Openwrt固件, 改进刷机方法
  8. 当当网买书薅羊毛攻略(附大数据学习用书)
  9. 转:愿景可以简单、平凡,但必须有效、可行
  10. 2019前端基础面试秘籍(更新于5.13)