Qt 窗口操作函数(置顶、全屏,最大化最小化按钮设置等)

2023-10-27

一、窗口置顶 与 取消置顶

void MainWindow::on_windowTopButton_clicked()
{
  if (m_flags == NULL)
  {
    m_flags = windowFlags();
    setWindowFlags(m_flags | Qt::WindowStaysOnTopHint);
    this->show();
  }
  else
  {
    m_flags = NULL;
    setWindowFlags(m_flags);
    this->show();
  }
}

二、全屏显示 与 退出全屏

首先,在QT中对于窗口显示常用的有这么几个方法可以调用:

showFullScreen() // Qt全屏显示函数
showMaximized() // Qt最大化显示函数
showMinimized() // Qt最小化显示函数
resize(x, y) // Qt固定尺寸显示函数
setMaximumSize(w, h) // Qt设置最大尺寸函数
setMinimumSize(w, h) // Qt设置最小尺寸函数

但是 showFullScreen() 和 showNormal() 只对顶级窗口有效果,对子窗口无效。要将子窗口全屏显示可用以下方法:

将要全屏的 Qt 子窗口调用 setWindowFlags(Qt::Window) 将其类型提升为顶级窗口模式,然后调用 showFullScreen() 函数将子窗口全屏显示。
当然全屏后还要恢复正常,即调用 setWindowFlags(Qt::subwindow) 将子窗口设置为非顶级窗口,再调用 showNormal() 还原子窗口显示。

// 全屏显示:
VideoWidget->setWindowFlags(Qt::Window);
VideoWidget->showFullScreen();

// 退出全屏时:
VideoWidget->setWindowFlags(Qt::SubWindow);
VideoWidget->showNormal();

三、窗口的 “最大化最小化关闭” 按钮设置

1、在 QDialog 中添加 “最大化” 和 "最小化"按钮

在使用 QDialog 时,默认情况下只有 “这是什么” 和 “关闭” 按钮,但是我们习惯有最大化和最小化按钮。这里介绍如何在该模式下如何设置。

this->setWindowFlags(Qt::Dialog | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
其中 WindowMinMaxButtonsHint 设置的就是最大和最小按钮,但是只这样设置,关闭按钮就不可用了,因此需要再添加 WindowCloseButtonHint 一项。

2、只禁止最大化按钮

this->setWindowFlags(windowFlags() &~ Qt::WindowMaximizeButtonHint);

Qt::WindowMaximizeButtonHint 为 WindowType 枚举变量,通过修改它可以选择禁止 “最小化” 或者 “关闭” 按钮。

四、禁止拖动窗口大小

this->setFixedSize(this->width(),this->height());

五、获取屏幕的宽度和高度

QApplication::desktop()->width();
QApplication::desktop()->height();

即得到屏幕分辨率,如 1024*768。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 窗口操作函数(置顶、全屏,最大化最小化按钮设置等) 的相关文章

  • QPainterPath::arcTo 上的角度如何解释?

    我正在开发图形编辑器的功能 在其中编辑弧线 当形状是椭圆形时 QPainterPath arcTo 的行为并不像我预期的那样 当它是一个圆圈时 它会按预期工作 下面的两张图片显示了结果 在第一种情况下 我创建了一个圆 然后将其转换为初始起始
  • 如何将flex和bison与Qt项目集成?

    我正在 git 源代码控制下使用 Qt4 制作 GUI 程序 Github页面 https github com vinayak garg dic sim 项目的一小部分需要扫描和解析 所以我想在项目中使用flex和bison 我能想到3种
  • QT C++ QRegularExpression 多个匹配

    我想使用正则表达式从 QString html 中提取信息 我明确想使用正则表达式 无解析器解决方案 和类Q正则表达式 http qt project org doc qt 5 0 qtcore qregularexpression htm
  • MSVC C4100:“应用程序”:未引用的形式参数警告

    使用 MSVC 编译时 以下代码会生成 C4100 警告 这怎么可能 显然引用了 应用程序 class ApplicationInfo public QObject Q OBJECT public static void initializ
  • 如何使用bind将成员函数作为函数指针传递?

    我试图将成员函数作为函数指针传递 这样我就不需要依赖单例或全局函数来处理 Qt 5 中的 Qt 消息 据我所知 我的 std function 是正确的类型 它具有正确的签名 并且绑定应该允许我插入隐式this指针 本质上是将成员函数传递为
  • qvariant 作为 qhash 中的键

    我想创建一个带有 QVariants 键的数据结构 它看起来像这样 QHash
  • Qt - QProcess 不工作

    我尝试启动 Internet Explorer 所以我使用下面的代码 QProcess process new QProcess this QString temp C Program Files Internet Explorer iex
  • Qt QML MenuItem iconSource不显示

    我有一个非常简单的设置只是为了说明问题 import QtQuick Controls 1 4 import QtQuick Window 2 2 ApplicationWindow visible true width 640 heigh
  • QtWebEngine Quicknano 在嵌入式 Linux 中没有声音

    我已将 QtWebEngine 编译到我的 i MX6 嵌入式设备中 当我尝试使用 Quicknanobrowser 播放 YouTube 视频时 视频会播放 但没有声音 事实上 当我尝试播放音频文件时没有声音hpr dogphilosop
  • 如何在Qt中更快地读取数据?

    Qt读取数据库比C 慢吗 我想我错过了一些东西 为了比较阅读速度 我在 Qt 中编写了以下内容 QElapsedTimer t t start int count 0 QString cs Driver SQL Server Server
  • 使用 QTestLib 时抑制 qDebug

    我正在向 Qt 中的项目添加单元测试 并希望使用 QTestLib 我已经设置了测试并且它们运行良好 问题是在项目中我们重写了 qDebug 以输出到我们自己的日志文件 这在运行应用程序时效果很好 问题是当我测试类时 它有时会开始记录 然后
  • QWebView等待加载

    bool MainWindow waitForLoad QWebView view QEventLoop loopLoad QTimer timer QObject connect view SIGNAL loadFinished bool
  • 如何使用样式表删除 QWizard 中的水平线?

    我正在研究一个样式表QWizard我想删除按钮上方的水平线 我已经发布了一个最小的例子here https stackoverflow com q 52538669 8570451 这个问题是由scopchanov从最小的例子中解决的 但是
  • 使用样式表时的 QTabWidget tabPosition

    我目前正在使用样式表来设计应用程序的主题 这是我用于 QTabWidget 的样式表 QTabBar et QTabWidget QTabBar tab background qlineargradient spread pad x1 0
  • 如何阻止 Qt Creator 将可执行文件放置在“调试”子目录中?

    我正在 Qt Creator 中构建一个项目 虽然我不关心中间 obj 文件去哪里 但重要的是最终的可执行文件应放入 并运行 许多依赖项 DLL 等所在的特定目录中 被发现 因此 在 Qt Creator 中 我选择 Shadow Buil
  • Qt ObjectName() 必须是唯一的吗?

    如标题所示的简单问题 如果我打电话setObjectName 在一个对象上 它是否必须是唯一的 或者只是因为约定而推荐 我已经子类化了QLabel 并希望自动为创建的对象命名 如果这是一个坏主意 我会找到一些设置随机唯一名称的方法 我实际上
  • Qt - 等待 Qprocess 完成

    我正在使用 CMDQProcess但我有一个问题 My code QProcess process process start cmd exe process write del f b txt n r process waitForFin
  • 隐藏 QLineEdit 闪烁光标

    我正在开发 QT v5 2 我需要隐藏闪烁的光标 插入符号 QLineEdit永久 但与此同时 我想要QLineEdit可编辑 因此 readOnly 和 或设置 editable false 对我来说不是一个选项 我已经改变了背景颜色QL
  • 如何在 PySide/PyQt 中制作一个位于屏幕中央的小部件?

    这段代码有效 但我想知道是否有更简单的方法 def center self qr self frameGeometry cp gui QDesktopWidget availableGeometry center qr moveCenter
  • 带 Qt 的菜单栏/系统托盘应用程序

    我是 Qt PyQt 的新手 我正在尝试制作一个应用程序 其功能将从菜单栏 系统托盘执行 这里展示了一个完美的例子 我找不到关于如何做到这一点的好资源 有人可以建议吗 Thanks 我认为您正在寻找与QMenu and QMainWindo

随机推荐

  • 算法---分治策略(二分查找)

    一 二分查找 二分查找也成为二分折半查找 在有序的数组中 数据量较大 查找一个数据速度是很快的 类似于二分查找的思想在生活中也是处处可见的 就比如说猜数字游戏 在1 100之间猜到对方想到的数字 首先说56 对方说小了 那么接下来你说出数字
  • 重构之处理IE浏览器兼容问题

    目录 情景 1 判断是否为 IE 浏览器 情景 2 TypeError 对象不支持 includes 属性或方法 情景 3 报错 SCRIPT5022 SecurityError sockjs js 1683 3 情景 4 get 自动请求
  • 查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在

    文章目录 一 查看MySQL服务器是否启用了SSL连接 1 登录MySQL服务器 2 查看SSL配置 二 查看证书是否存在 前言 查看MySQL服务器是否启用了SSL连接 并且查看ssl证书是否存在 一 查看MySQL服务器是否启用了SSL
  • TrimLeft()和TrimRight()

    strming TrimLeft 将字符串最前面的空格修整掉 当在没有参数的情况下调用时 TrimLeft删除换行符 空格和tab字符 strming TrimRight 消除从右侧起所遇到的所有空格字符
  • uni-app app-plus

    项目目录结构 index vue
  • DUBBO用户指南

    随着互联网的发展 网站应用的规模不断扩大 常规的垂直应用架构已无法应对 分布式服务架构以及流动计算架构势在必行 亟需一个治理系统确保架构有条不紊的演进 单一应用架构 当网站流量很小时 只需一个应用 将所有功能都部署在一起 以减少部署节点和成
  • MybatisPlus学习(四)条件构造器Wrapper方法详解

    文章目录 前言 1 条件构造器 2 QueryWrapper 2 1 eq ne 2 2 gt ge lt le 2 3 between notBetween 2 4 like notLike likeLeft likeRight 2 4
  • TCP之Nagle算法和延迟确认及关闭参数

    主要为了解决首发包延迟问题 关闭Nagle算法 设置TCP NODELAY 关闭延迟确认Delayed Ack 每次都得设置 TCP QUICKACK 基础知识顺便列一下 Nagle算法 为了减少网络中小分组的数目 减少网络拥塞的情况 Na
  • Java设计模式-单例模式

    单例模式概念 单例模式是设计模式中最简单的形式之一 这一模式的目的是使得类的一个对象成为系统中的唯一实例 要实现这一点 可以从客户端对其进行实例化开始 因此需要用一种只允许生成对象类的唯一实例的机制 阻止 所有想要生成对象的访问 使用工厂方
  • 如何使用开源项目学习(Github的使用)

    使用开源项目其实有github这个工具就可以 下面我们来介绍一些常用的搜索GitHub开源的方法 最常使用的选项如下 pushed gt 2019 02 01 在最近这一天修改过 in name 关键字 名字里面包含关键字 in readm
  • w10运行游戏计算机中丢失xinput1-3.dll,WIN10启动游戏由于找不到xinput13dll无法运行如何修复...

    xinput1 3 dll是Microsoft DirectX for Windows的控制模块 在win10系统中 每当用户在启动游戏时 出现错误提示找不到 xinput1 3 dll 说明系统中缺失这个dll文件或者该dll文件没有被注
  • python报错:ERROR: No matching distribution found for

    使用pip安装包时提示报错如下 ERROR Could not find a version that satisfies the requirement
  • Linux中显示文件系统的磁盘使用情况及统计df和du命令的基本用法

    df disk free 功能 查看磁盘的整体使用情况 包括总的磁盘空间大小 使用了多少磁盘空间 还剩多少磁盘空间可以使用 用法 df 格式显示参数 需要统计的目录 df不加任何参数 默认显示所有目录的磁盘使用情况 以KB为单位 eg df
  • 蓝桥杯-排列字母-优先队列

    问题描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 小蓝要把一个字符串中的字母按其在字母表中的顺序排列 例如 LANQIAO 排列后为 AAILNOQ 又如 GOODGOODSTUDYDAYDAYUP 排列后为
  • 3Dmax 头发制作

    要在头顶创建头发 请使用样条线框架 此方法有助同时设计大量头发 尤其是长发 用于长出满头头发的样条线框架 样条线框架方法与络腮胡和唇胡所采用的多边形方法稍有不同 将从样条线 而不是从头部曲面 长出头发 没有任何毛发导向 样条线自身即为导向
  • sqli - labs - 13 ~ 14

    我们先来看看源SQL语句 发现使用 闭合的 查看数据库名 and extractvalue 1 concat database 可以看出数据库名为 security 查看所有数据库 and extractvalue 1 concat sel
  • 【AI】生成式人工智能用例和应用

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • openssl命令基础用法:创建CA和申请证书

    使用openssl工具创建CA证书和申请证书时 需要先查看配置文件 因为配置文件中对证书的名称和存放位置等相关信息都做了定义 具体可参考 usr lib ssl openssl cnf 文件 修改文件内容 etc pki CA中创建下面文件
  • 基于 Flink CDC 实现海量数据的实时同步和转换

    摘要 本文整理自 Apache Flink Committer Flink CDC Maintainer 阿里巴巴高级开发工程师徐榜江 雪尽 在 5 月 21 日 Flink CDC Meetup 的演讲 主要内容包括 Flink CDC
  • Qt 窗口操作函数(置顶、全屏,最大化最小化按钮设置等)

    一 窗口置顶 与 取消置顶 void MainWindow on windowTopButton clicked if m flags NULL m flags windowFlags setWindowFlags m flags Qt W