qt 内嵌窗口和记录内嵌窗口位置原点问题
主要记录一下在用内嵌窗口时涉及到调用setWindowFlags和setWindowFlag API时不同效果
如果想给主窗口(例: MainWindow)创建一个内嵌窗口, 需要注意两处,例如在主窗口创建子窗口(DialogTest):
1. 在创建子窗口时构造中传入主窗口
DialogTest *test = new DialogTest(this);
2. 设置子窗口无边框
1 | test->setWindowFlags(Qt::FramelessWindowHint); |
完整创建子窗口代码如下:
//MainWindow下 DialogTest *test = new DialogTest(this); test->setWindowFlags(Qt::FramelessWindowHint); test->show(); test->setGeometry(0, 0, 400, 400);
此处注意是setWindowFlags不是setWindowFlag, 这两个API调用有区别,不知道是我使用方式不对还是其他问题....
setWindowFlags 窗口位置原点在: 主窗口左上角位置
setWindowFlag 窗口位置原点在: 桌面左上角位置
setWindowFlags和setWindowFlag主要区别是原点不同, 如果使用setWindowFlag, 比如设置窗口位置: x: 0 y: 0, 会是桌面左上角, 如果主窗口移动子窗口不会跟随移动:
如果使用setWindowFlags设置窗口位置 x:0 y:0, 会在窗体左上角, 如果主窗口移动子窗口会跟随移动:
所以一般大家都是用的setWindowFlags。
setWindowFlags 窗口位置原点在: 主窗口左上角位置
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
2021-06-11 linux (debian 10) 解压deb包安装向日葵客户端,客户端安装失败问题记录