读书人

如何取得窗口的位置和大小

发布时间: 2013-03-01 18:33:02 作者: rapoo

怎么取得窗口的位置和大小?
我的问题是这样的:
我有一个窗口,把它的尺寸拉的很小,假如只有 100x100 。

然后把它最大化。我的屏幕是 1680x1050

然后通过几个返回 QRect 的方法去取窗口的尺寸,都是 1680x1050
QRect frameGeometry() const;
const QRect &geometry() const;
QRect normalGeometry() const;


我希望在最大化状态下,也能取得窗口在 normal 状态下的 100 x 100 这个尺寸。

请教如何获取?

别让我先 showNormal(), 这样屏幕会闪一下,效果不好。

谢谢。
[解决办法]
你这个需求很怪异
自己实现resizeEvent()
void QWidget::resizeEvent ( QResizeEvent * event )
{
QSize size = event->oldSize () ;
}

[解决办法]
void QWidget::moveEvent ( QMoveEvent * event )
{
QPoint point = event->oldPos ();
}

void QWidget::resizeEvent ( QResizeEvent * event )
{
QSize size = event->oldSize () ;
}

上边坐标,下边大小
[解决办法]

引用:
是这样的,我需要在关闭程序前保存主窗口的位置,下次打开时恢复。

如果没有这个值,

那么当关闭时是最大化时,恢复时也是最大化,但这时点右上角中间按钮时,就无法恢复到先前的大小了。

closeEvent{
if窗口状态不是normal,不保存窗口大小

[解决办法]
你可以给normal设置一个固定值

读书人网 >QT开发

热点推荐