gpt4 book ai didi

qt - QWidget::geometry() 与 QWidget::frameGeometry()

转载 作者:行者123 更新时间:2023-12-04 13:02:25 28 4
gpt4 key购买 nike

虽然 Qt's docs表明这两个功能是不同的(第一个不包括框架)无论我选择什么小部件 - 包括我的应用程序的主窗口 - someWidget->frameGeometry().height()始终返回与 someWidget->geometry.height() 相同的值.

我在这里缺少什么?

最佳答案

我认为,您没有给要绘制的小部件足够的时间。有一个小例子:

#include <QApplication>
#include <QMainWindow>
#include <QDebug>

class MainWindow : public QMainWindow
{
public:
MainWindow() {
startTimer(500);
}

void timerEvent(QTimerEvent *e) {
// Here values are different
qDebug() << geometry().height() << frameGeometry().height();
}
};

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

MainWindow mainWin;
mainWin.show();

// Here values are equals
qDebug() << mainWin.geometry().height() << mainWin.frameGeometry().height();

return app.exec();
}

第一个调试输出将为 geometry 产生相同的值和 frameGeometry ,但第二个(在 timerEvent 中)会产生不同的结果。

关于qt - QWidget::geometry() 与 QWidget::frameGeometry(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14540075/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com