QT取消标题栏,如何实现窗口移动

2023-11-16

qt自带的标题栏在多个平台都显示的不一样,而且在常用的window平台也非常的不好看,所以我们经常会用到的美化方式就是会取消标题栏的显示,但是取消标题栏的显示就会出现一个问题就是无法实现窗口的移动,所以这里给出一个方法实现左键按压窗口控件任意地方来实现窗口的移动,下面我们直接看代码和使用方法即可。

// 窗体移动方法重载eventFilter函数
bool Widget::eventFilter(QObject *watched, QEvent *evt)
{
    static QPoint mousePoint;
    static bool mousePressed = false;

    QMouseEvent *event = static_cast<QMouseEvent *>(evt);
    if (event->type() == QEvent::MouseButtonPress) {
        if (event->button() == Qt::LeftButton) {
            mousePressed = true;	// 左击事件跟随鼠标移动窗口位置
            mousePoint = event->globalPos() - this->pos();
            return true;
        } else {
//            exit(0);// 右击事件直接退出程序
        }
    } else if (event->type() == QEvent::MouseButtonRelease) {
        mousePressed = false;
        return true;
    } else if (event->type() == QEvent::MouseMove) {
        if (mousePressed && (event->buttons() && Qt::LeftButton)) {
            this->move(event->globalPos() - mousePoint);
            return true;
        }
    }
    return QWidget::eventFilter(watched, event);
}

使用方法:将最大的窗口重载上我们写的方法上面就可以了

this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint);//取消标题栏的显示
ui->tabWidget->installEventFilter(this);// 重载主窗口控件的eventfilter方法来实现移动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT取消标题栏,如何实现窗口移动 的相关文章

  • Q风格所有权

    在 Qt 应用程序中使用样式时 我遇到了一个有趣的问题QStyle所有权 QStyle继承自QObject 通常接受QObject parent作为构造函数参数来管理其子级的生命周期 但QStyle的构造函数没有此构造函数参数 第一个问题
  • 在 Qt GraphicsView 中创建长线(或十字线)光标的最佳方法

    创建长十字线光标 与视口一样长 的简单方法是创建一条十字线graphicsItem 当鼠标移动时 设置该项目的pos财产 但是当场景复杂时这种方式会很慢 因为它要更新整个视口来更新光标的pos 另一种简单的方法是setCursor QCur
  • 使用 QGraphicsScene 和 QGraphicsView 在 Qt 中开始基于 Tile 的游戏

    我将开始在 Qt 中编写基于 2D 图块的游戏 并阅读 QGraphicsScene 和 QGraphicsView 类 这些类旨在显示和处理大量 2D 对象 我的问题是 使用 QGraphicsScene 创建一个包含大量图块的世界是否可
  • QByteArray 到整数

    正如您可能从标题中看出的那样 我在转换QByteArray为一个整数 QByteArray buffer server gt read 8192 QByteArray q size buffer mid 0 2 int size q siz
  • QWebEngineView 在 load() 或 page() 方法上崩溃

    我正在致力于将 Qt 5 5 QWebView 项目移植到 Qt 5 6 测试版 QWebEngine 我已经阅读了移植指南here https wiki qt io Porting from QtWebKit to QtWebEngine
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 为按钮控件 Qt Widgets 样式表定义多种样式

    如何在一个样式表中为一种控件定义多种样式 这样以后开发人员就可以选择控件应该是什么样子的样式 例如 我需要定义两种样式QPushButton 用于普通按钮 左侧 和操作按钮 右侧 对于第一个按钮 我编写了以下样式 QPushButton b
  • 如何安装 C++ 的 VOCE?

    我正在尝试安装 VOCE api 它是为 C 和 Java 构建的语音识别 API 这是我第二次使用外部 C 库 也是第一次使用 Java C api 语音链接 http voce sourceforge net http voce sou
  • Qt 和 Sqlite 示例

    我正在寻找一些使用 Qt 的示例代码 它是带有 Sqlite 驱动程序的 SQL 模块 我需要示例的主要原因是我之前有 Qt 数据库接口的经验 并且 Sqlite 在字段类型方面有一些奇怪的行为 类型是按字段存储的 而不是按列存储的 The
  • 从 QWebEngineView 或 QWebEnginePage 中删除滚动条

    有没有办法删除滚动条QWebEngineView或者我可以以某种方式访问 它的 ScrollArea 吗 使用 webkit 就这么简单 WebView gt page gt setScrollBarPolicy Qt Vertical Q
  • 使用 CMake 时出现 Qt moc 错误

    我正在尝试编写一个 OpenCV 应用程序 使用 Qt 创建 GUI 并使用 CMake 生成 makefile 我遇到的问题是 当我尝试执行make命令 我收到错误 该文件是使用 5 2 1 中的 moc 生成的 它不能与此版本的 Qt
  • 如何找到位于给定 (X,Y) 位置的 DOM 节点? (命中测试)

    我有 HTML 文档中一个点的坐标 X Y 如何确定这些坐标处的 DOM 节点是什么 一些想法 是否有我错过的 DOM 命中测试函数 它需要一个点 X Y 并返回那里的 DOM 元素 有没有一种有效的方法来遍历 DOM 元素树来查找包含元素
  • Qt 覆盖小部件快捷方式(窗口快捷方式)

    我有一个 Qt 应用程序 其中在 Qt Designer 表单操作中定义了多个窗口快捷方式 这些快捷键效果很好 直到焦点位于处理相同组合的小部件上 覆盖我的窗口快捷键 时按下它们 我想要相反的行为 窗口快捷方式覆盖聚焦的小部件快捷方式 我尝
  • 无法在 Qt Creator 中检索调试输出

    在 Windows 上的 Qt Creator 中 qDebug 语句不起作用 并且输出窗口中出现以下消息 无法检索调试输出 如何解决 如果多个 Qt Creator 实例处于活动状态 则可能会出现此问题 要解决此问题 只需关闭 Qt Cr
  • 用Qt制作无边框窗口

    我是 Qt C 新手 我下载了最新的 Windows 版本 做了一些教程 非常棒 我看到了 Qt 框架具有的一些样式选项 而且它很棒 但现在我需要构建我的应用程序 其主窗口 形式 是用没有矩形边框 无边框 的图像设计 蒙皮的 我怎样才能用Q
  • Qt 要包含哪些标头?

    使用 Qt 使用 C 进行编程时 我应该包含哪些内容 仅包含 2 个 include
  • 找不到 PySide SVG 图像格式?

    我正在使用 Eclipse 的 PyDev 插件与 Qt 集成 我安装了 PySide 但在使用 SVG 图像格式时遇到问题 我知道当我运行我的应用程序时 格式位于C Python27 Lib site packages PySide pl
  • 更改 QGraphicsView 中的光标

    我正在尝试更改 a 的光标QGraphicsView而ScrollHandDrag已开启 但似乎不起作用 如果禁用 我可以更改光标ScrollHandDrag但不是在它处于活动状态时 我不知道我可能做错了什么 下面是重现该问题的代码的一部分
  • 在 Qt 5.12 的 OpenCV dll 上找不到入口点

    TLDR 将 OpenCV 与 QT MingW 链接会使应用程序在调试时崩溃 但不会在发布时崩溃 我正在尝试在基于 Qt 的大型多操作系统项目中使用 OpenCV 我已经轻松地为 Mac 和 Linux 构建了 OpenCV 但在 Win
  • Qt 模型/视图与标准小部件

    我目前正在阅读模型 视图tutorial http qt project org doc qt 4 8 modelview html来自 Qt 但我仍然不确定是否应该为我的 Qt 程序使用模型 视图或小部件 我需要做一个记录器应用程序来监视

随机推荐

  • Sequential Recommendation with Graph Neural Networks

    Sequential Recommendation with Graph Neural Networks 文章目录 1 背景 2 模型 2 1 Interest Graph Construction 2 1 1 Raw graph cons
  • 【C语言】 看图说话-从源代码到exe

    1 从源代码到exe需要经过哪几个时期 答 要经过五个时期 分别为预处理期 编译期 汇编期 连接期和执行期 2 不同时期里 谁 在做什么事情 答 在预处理期 就是程序员在编写代码的过程 编译期中编译器将源代码变为汇编语言 汇编语言是计算机语
  • WebAPI项目搭建及其发布测试

    目录 1 创建项目 2 配置 3 发布 4 测试页面 1 创建项目 1 创建ASP NET Web应用程式 如下图 2 选择Empty 勾选Web API 点击确定创建 如下图 3 创建完成 如下图 4 添加文件夹及类 如下图 说明 BLL
  • python语句print(type([1、2、3、4))_Python语句 print(type([1,2,3,4])的运行结果是_学小易找答案...

    填空题 Python表达式eval 5 2 5 2 5 2 的结果是 填空题 循环语句 for i in range 3 21 4 的循环次数为 判断题 如有下面代码 输出的结果是一个元组 def f a b c print a b c f
  • 组件文件已损坏或android内部模块,android - Android Q更新后,模块化系统组件在托管配置文件中不可用 - 堆栈内存溢出...

    在从工作配置文件配置的设备设置应用中将操作系统从Android 9升级到10后 请停止运行 java lang RuntimeException Unable to start activity ComponentInfo com andr
  • Java中两个List之间的比较(差集,交集,并集)

    实现比较两个List之间的差异 包括获取两List的差集 交集 并集 不去重 去重 的API解法和优化解法的解决方案 求差集 差集 基于API解法 适用于小数据量 求List1中有的但是List2中没有的元素 时间复杂度 O list1 s
  • vs code 国内镜像源

    我们在去 vs code 官网下载软件时 会发现下载速度非常的慢 这是因为vs code官网本身在国外 离得比较远 自然下载速度快不起来了 如直接使用下面的链接 https az764295 vo msecnd net stable f80
  • python实现批量翻译——你不会还在一个个翻译吧

    python实现翻译 translate 语句 文本 google translate 语句 import pandas as pd from translate import Translator translator Translato
  • linux服务器成功卸载和安装anaconda(详细)

    卸载anaconda 只需要移除其文件夹即可 sudo rm rf path anaconda3 下载anaconda 在官网查找一下自己需要的anaconda版本 下载之后是一个 sh文件 并将其上传至服务器节点 也可以在清华源节点进行下
  • Linux基础笔记10

    find 常用示例 用来在指定目录下查找文件 任何位于参数之前的字符串都将被视为欲查找的目录名 如果使用该命令时 不设置任何参数 则 find 命令将在当前目录下查找子目录与文件 并且将查找到的子目录和文件全部进行显示 学习参考博文 骏马金
  • vue3实现H5监听浏览器回退并阻止回退

    当你的移动端页面有弹窗的组件并且这个组件不是来自于某些知名的组件库 你是否有这样的需求 当用户唤起弹窗之后又按下了手机自带的回退键 弹窗之前的页面也被关掉了 而用户本身的意愿是关掉弹窗而已 如果你也有这样的诉求 这篇文章帮你解决 1 给hi
  • 在不支持AirDrop的Mac上开启和使用AirDrop的方法

    本帖最后由 luciiferre 于 12 11 18 06 54 编辑 苹果为OS X 10 7 Lion系统加入了全新的AirDrop功能 该功能允许两台Mac之间无线传输文件 用户无需设置 只需要打开AirDrop文件夹即可查看到其他
  • 计算机网络之物理层

    目录 一 物理层概述 二 数据通信的基础知识 2 1数据通信系统的模型 2 2关于信道的几个基本概念 2 3信道的极限容量 三 物理层下面的传输媒体 3 1导引型传输媒体 3 2非导引型传输媒体 四 信道复用技术 五 数字传输系统 六 宽带
  • 华为OD机试真题 Java 实现【字符串加密】【2023Q1 100分】,附详细解题思路

    一 题目描述 有一种技巧可以对数据进行加密 它使用一个单词作为它的密匙 下面是它的工作原理 首先 选择一个单词作为密匙 如TRAILBLAZERS 如果单词中包含有重复的字母 只保留第1个 将所得结果作为新字母表开头 并将新建立的字母表中未
  • 闭环系统的零极点图判定稳定性_三步教你设计运放电路稳定性

    1 前言 集成运算放大器的参数有很多 但涉及到实际应用环境的不同 一些参数非常重要 另外一些则相对次要 例如 在交流高频领域 会重视带宽和压摆率 而在直流精密场合 则重视输入失调电压 输入偏置电流 还有一些参数 不管直流还是交流 都会重点关
  • 清华大学开源的chatGLM-6B部署实战

    Windows部署 win10 通过wsl部署 常见问题 torch cuda OutOfMemoryError CUDA out of memory 在Windows的系统环境变量中增加 变量名 PYTORCH CUDA ALLOC CO
  • 通过alter table A engine=innodb来重建表

    1 业务场景 即为什么要重建表 由于前期的存储设计不合理 表里有个字段 用于存储大段字符串 导致存储到磁盘的空间极大 严重影响表相关的增删改查速度 所有需要对表存储设计进行重构 并对表进行重建 2 实践记录 我们业务场景是由软删字段的 de
  • C++,类的多态

    一 多态的基本概念 多态 父类的指针或引用 指向或初始化子类的对象 调用子类对父类重新的函数 进而展开子类的功能 函数重新的必要条件 必须有继承关系 子类和父类有同名同类型的函数 父类中的该函数必须是虚函数 虚函数 在函数前加上virtua
  • K8s Kubernetes集群部署

    root master yum y install docker ce root master systemctl enable now docker Created symlink etc systemd system multi use
  • QT取消标题栏,如何实现窗口移动

    qt自带的标题栏在多个平台都显示的不一样 而且在常用的window平台也非常的不好看 所以我们经常会用到的美化方式就是会取消标题栏的显示 但是取消标题栏的显示就会出现一个问题就是无法实现窗口的移动 所以这里给出一个方法实现左键按压窗口控件任