【发布时间】:2010-09-19 09:36:40
【问题描述】:
正如标题所说,当我调整窗口大小时,如果我把它变宽,我希望窗口的高度按比例调整以使窗口具有相同的比例。 我只是在paintEvent中做逻辑,但它不能正常工作,有大佬有什么解决办法吗?
我认为在resizeEvent中调整大小不是一个好方法,最好的结果是窗口闪烁,但我想要流畅的方式
【问题讨论】:
正如标题所说,当我调整窗口大小时,如果我把它变宽,我希望窗口的高度按比例调整以使窗口具有相同的比例。 我只是在paintEvent中做逻辑,但它不能正常工作,有大佬有什么解决办法吗?
我认为在resizeEvent中调整大小不是一个好方法,最好的结果是窗口闪烁,但我想要流畅的方式
【问题讨论】:
不要在paintEvent 中这样做,而是在void QWidget::resizeEvent ( QResizeEvent * event ) 中这样做。然后您可以比较 event->size() 和 event->oldsize() 以查看更改了哪个维度,然后调整大小以使另一个维度与更改的维度匹配。
编辑:请注意,当您在 resizeEvent 函数中调整窗口大小时,您将创建另一个调整大小事件。因此,请确保仅在发生导致窗口纵横比错误的更改时才调整大小,否则您将创建函数的无限递归和堆栈溢出。
【讨论】: