常见问题汇总
QT构造函数中获取控件大小错误的解决方法
问题描述
有时候我们想在窗口初始化的时候获取某个控件的大小,根据这个大小来进行一些操作,但是在我们的窗口应用了布局等情况下,会导致获取到的大小错误,构造函数里拿到的大小是100x30,这时候要想获取正确的大小,就需要做一些额外的此操作了。
解决方案
1.窗口构造结束之后,会执行 resizeEvent 事件函数,此时可在这个函数中获取到正确的大小。
2.设置一个定时器,在窗口构造结束后,执行获取大小操作。
原文链接:https://blog.csdn.net/wy_553666576/article/details/104965908
=====================================
QWidget派生的类,单独显弹框示时,不要设置父窗口this指针, QWidget(this) ;
同时要用new 创建,不要用局部变量形式创建并show;
QWidget* dlg = new QWidget() ;
dlg->show();
- QWidget *keyboardGrabber(); // 得到正在捕获键盘事件的窗口
- QWidget *mouseGrabber(); // 得到正在捕获鼠标事件的窗口
// 无边框 有父指针窗口时,始终保持窗口置顶最前
setWindowFlags( Qt::Dialog| Qt::FramelessWindowHint);