当前位置: 首页 > 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/a/308661.html

相关文章:

  • PyTorch深度学习与企业级项目实战-预训练语言模型GPT
  • 鸿蒙next版开发:相机开发-适配不同折叠状态的摄像头变更(ArkTS)
  • golang如何实现sse
  • ArkTs简单入门案例:简单的图片切换应用界面
  • STM32单片机WIFI语音识别智能衣柜除湿消毒照明
  • 【Java SE】接口类型
  • 枚举类题目练习心得
  • 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