Qt窗体全屏与复原,子窗体全屏与复原

这篇具有很好参考价值的文章主要介绍了Qt窗体全屏与复原,子窗体全屏与复原。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

QT QWidget窗体全屏时,全屏与最大化的区别时最大化有标题框全屏没有框,可以使用自带的函数:

showFullScreen();

复原时也有专门的函数:

showNormal();

1. 点击窗体最大化按钮实现全屏,按下ESC实现复原

如果我想在点击最大化按钮时,让窗体全屏。这个时候最好有线程的信号或者函数,通过它们来调用showFullScreen(),可惜现在没有这样的函数,只能靠以下方法:

void Widget::changeEvent(QEvent *event)
{
    if (event->type() == QEvent::WindowStateChange)
    {
        if (this->windowState() == Qt::WindowMaximized)
        {
            this->showFullScreen();
        }
    }
    QWidget::changeEvent(event);
}

QWidget有个专门的函数changeEvent来监测事件变化,当窗体状态变化时会发送QEvent::WindowStateChange,它的描述如下:

The window's state (minimized, maximized or full-screen) has changed (QWindowStateChangeEvent).

包括最大最小与全屏事件。

然后我们再判断窗体的状态是否是最大化,是的话就调用showFullScreen()全屏函数。

同理,检测最小化事件也可以采用这种方法。

复原时,按下ESC。复原代码:

void Widget::keyPressEvent(QKeyEvent *event)
{
    if (event->key() == Qt::Key_Escape)
    {
        showNormal();
    }
    QWidget::keyPressEvent(event);
}

Qt窗体全屏与复原,子窗体全屏与复原,QT实用笔记,qt,全屏,复原

2. 按下自定义按钮实现全屏,按下自定义按钮复原

修改一下,写两个槽直接调用最大化与复原函数。

connect(ui->MaxButton, SIGNAL(clicked()), this, SLOT(slotMax()));
connect(ui->NormalButton, SIGNAL(clicked()), this, SLOT(slotNormal()));

void Widget::slotMax()
{
    showFullScreen();
}

void Widget::slotNormal()
{
    showNormal();
}

Qt窗体全屏与复原,子窗体全屏与复原,QT实用笔记,qt,全屏,复原

3. 按下自定义按钮实现子窗体全屏,按下自定义按钮复原

这个比较有用,比如内部视频窗体要全屏。修改代码如下:

void Widget::slotMax()
{
    m_rect = ui->widget->geometry();
    ui->widget->setWindowFlags(Qt::Window|Qt::WindowStaysOnTopHint|Qt::FramelessWindowHint);

    ui->widget->setFocus();
    ui->widget->showFullScreen();
}

void Widget::slotNormal()
{

    ui->widget->setWindowFlags(Qt::WindowTitleHint|Qt::WindowSystemMenuHint|Qt::WindowMinMaxButtonsHint|Qt::WindowCloseButtonHint);
    ui->widget->showNormal();
    ui->widget->setGeometry(m_rect);
}

在全屏之前记录一下内部子窗体的位置大小,复原时候用得上。

Qt窗体全屏与复原,子窗体全屏与复原,QT实用笔记,qt,全屏,复原

 文章来源地址https://www.toymoban.com/news/detail-547166.html

到了这里,关于Qt窗体全屏与复原,子窗体全屏与复原的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt顶部圆角窗体

    Qt:实现顶层窗体圆角_qt 圆角窗口弹窗-CSDN博客 

    2024年01月25日
    浏览(23)
  • QT窗体绘图QPainter

    QPainter INSCODE AI 创作助手: QPainter是Qt中的一个类,用于在窗口、图像或其他用户界面上绘制图形和文本。它提供了一些方便的方法来画线、矩形、圆、多边形和文本 QPainter绘图函数 INSCODE AI 创作助手: QPainter是Qt中一个用于绘图的类,它提供了一系列的绘图函数。以下是一些

    2024年02月05日
    浏览(26)
  • Qt 设置窗体透明

    一、前言 在音频开发中,窗体多半为半透明、圆角窗体,如下为Qt 5.5 VS2013实现半透明方法总结。 二、半透明方法设置 1、窗体及子控件都设置为半透明 1)setWindowOpacity(0.8);//参数范围为0-1.0,通过QSlider控件做成透明度控制条   2)无边框设置 3)窗体圆角设置 2、通过图片贴图

    2024年02月11日
    浏览(34)
  • Qt实现改变无标题栏窗体大小及移动窗体

    目录 1.问题的提出 2.实现方法 3.存在的问题 一般情况下,当去掉窗体标题栏时,按住鼠标左键就无法实现拖动窗体;当去掉窗体标题栏时,窗体四周的边框也去掉了,此时按住鼠标左键拖动窗体四周边沿,无法实现鼠标拖动改变窗体大小。如下为Qt实现去掉窗体标题栏的代码

    2024年02月13日
    浏览(29)
  • 【QT】多窗体应用程序设计

    目录 1主要的窗体类及其用途 2 窗体类重要特性的设置 2.1 setAttribute()函数 2.2 setWindowFlags()函数 2.3 setWindowState()函数 2.4 setWindowModality()函数 2.5 setWindowOpacity()函数 3 多窗口应用程序的设计 3.1 主窗口设计 3.2 QFormDoc类的设计 3.3 QFormDoc类的使用 3.4 QFormTable类的设计 3.5 QFormTable类的使

    2024年01月18日
    浏览(35)
  • 常用界面设计组件 —— 窗体(QT)

    组件是GUI的基本元素,也称为UI控件。它接受来自底层平台的不同用户事件,如鼠标和键盘事件(以及其它事件)。所有组件都继承自QObject。QWidget是一个基本的组件,是所有UI组件的基类。它描述组件所需要的大多数属性,包括几何图形、颜色、键盘行为、工具提示等属性。

    2024年01月20日
    浏览(29)
  • Qt: windows下关闭系统窗体

    之前做了个自动烧录工具,但是有些烧录时出现的一些烦人的弹窗需要解决, 刚好找到一个方法在这里记录一下。 工程文件.pro加入 LIBS += -luser32 Note: 详情看代码及备注。

    2024年04月29日
    浏览(25)
  • C++Qt堆叠窗体的使用案例

    本博文源于笔者最近学习的Qt,内容讲解堆叠窗体QStackedWidget案例,效果是选择左侧列表框中不同的选项时,右侧显示所选的不同的窗体。 控件都是动态创建的,因此.h文件需要创建控件,.cpp书写业务代码 .cpp文件,要分为两个部分

    2024年02月11日
    浏览(22)
  • Qt编程基础 | 第六章-窗体 | 6.1、主窗体QMainWindow类

    QMainWindow是为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,其界面布局如下图所示 注意:主窗口QMainWindow有自己的布局管理器,因

    2024年02月06日
    浏览(27)
  • QT 子窗体关闭或按钮返回父窗体(零基础保姆级)

    功能 父窗体点击按钮打开子窗体并隐藏父窗体,子窗体点击返回按钮或者关闭按钮后销毁自己并返回父窗体 效果展示 打开uidesigner 设计父窗体ui 建立子窗体 设计子窗体UI “subwidget.h” “subwidget.cpp” “widget.h” “widget.cpp”

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包