我的应用程序窗口可以调整为零大小。我不想限制最小窗口大小。 HBoxLayout有几个小部件(QLineEdits,QLabels,QPushButtons)。
首先,当窗口非常小时,HBoxLayout中的所有小部件都被调整大小而不考虑它们的sizeHint。 然后我在它们上使用了setFixedSize(sizeHint)。现在它们不会缩小到它们的尺寸以下,但是当窗口非常小时它们会开始重叠。
我想要的是Thunderbird的功能(截图附件): 它通过将窗口移出窗口边框来平滑地隐藏窗口小部件。它们的大小没有变化。
如何使用Qt Layouting系统实现这一目标?
my application: normal window
http://i.stack.imgur.com/WLgLy.png
my application: small window
http://i.stack.imgur.com/IIhhs.png
Thunderbird: normal window
http://i.stack.imgur.com/AYJ83.png
Thunderbird: small window
http://i.stack.imgur.com/ZyQou.png
答案 0 :(得分:1)
完成&完成
答案 1 :(得分:0)
可能这不是你想要的但是考虑一下: 把你的所有东西都放在一个小部件里(在这里只命名为'widget'),不要将这个'widget'放到任何布局中,只需保留它并将此事件函数添加到你的窗口类中:
void MainWindow::resizeEvent(QResizeEvent *event){
ui->widget->move(QPoint(event->size().width()-ui->widget->width()-20,ui->widget->y()));
QMainWindow::resizeEvent(event);
}
它有效!