当前位置: 首页 > article >正文

Qt QDialog点击界面自动激活问题解决办法

1. 问题描述:

     由于程序中对QDialog使用方式的错误,导致在新版本中出现一个奇怪的问题。其主要表现为:

当界面继承QDialog以后,设置非模态,并直接调用show后,弹出新界面覆盖在这个Dialog上时,点击其他未被遮挡的区域,会自动激活QDialog画面,自动激活后,导致QDialog显示在新界面的上面了。

也就是说,当使用QDialog,非模态时,如果有其他界面显示在这个对话框上层,且没有完全遮挡时,点击其他对话框,这个对话框会自动获取焦点,并显示在最上层。

2. 解决办法:

这个问题,是由于QDialog对话框的窗口属性导致的。需要强制修改窗口属性。代码如下:

 this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnBottomHint | Qt::WindowDoesNotAcceptFocus);

其中起到作用的是这两个。

Qt::WindowStaysOnBottomHint | Qt::WindowDoesNotAcceptFocus


http://www.kler.cn/news/308661.html

相关文章:

  • 枚举类题目练习心得
  • Golang | Leetcode Golang题解之第403题青蛙过河
  • 【题解】CF2009G1
  • QtC++截图支持获取鼠标光标
  • 运维工程师面试整理-虚拟化与容器
  • 实时数仓3.0DWD层
  • vulnhub(7):Toppo(经典的suid滥用提权)
  • ArcGIS Pro SDK (十四)地图探索 1 地图视图
  • 探索 InternLM 模型能力边界
  • 什么是外贸专用路由器?
  • 后端开发 每天六道面试题之打卡第一天
  • python中的各类比较与计算
  • Android14 蓝牙 BluetoothService 启动和相关代码介绍
  • 【Vue】- 生命周期和数据请求案例分析
  • phpstudy 建站使用 php8版本打开 phpMyAdmin后台出现网页提示致命错误:(phpMyAdmin这是版本问题导致的)
  • k8s中的存储
  • 【设计模式-外观】
  • 【计算机网络 - 基础问题】每日 3 题(七)
  • 【编译原理】看书笔记
  • keep-alive缓存不了iframe
  • 快速开发与维护:探索 AndroidAnnotations
  • Edegex Foundry docker和源码安装
  • uniapp与webview进行数据通信
  • 每个电脑都有ip地址吗?不同电脑ip地址一样吗
  • 爬虫代理失效怎么处理?全面解决方案
  • 【智路】智路OS 设备接入开发
  • 力扣122.-买卖股票的最佳时机 II(Java详细题解)
  • Python数据分析 Pandas基本操作
  • .NET 6.0 + WPF 使用 Prism 框架实现导航
  • Linux下编译Kratos