Show、Hide和Setvisible的区别
垂直布局中有A和B两个按钮,原本A在B上方,
A
B
隐藏A后再显示A,A到了B下方。
B
A
请问如何让A保持在B上方?
hide方法会将组件移出布局,setvisible不会。
用setvisible方法就行。
布局的插入索引
// 隐藏按钮 A
layout->removeWidget(buttonA);
buttonA->hide();
// 重新显示按钮 A 并确保它在按钮 B 上方
layout->insertWidget(0, buttonA); // 将按钮 A 插入到索引 0 的位置
buttonA->show();
布局的焦点策略
在某些情况下,设置按钮的焦点策略为 Qt::StrongFocus
可以避免布局重新计算时顺序发生变化。
buttonA->setFocusPolicy(Qt::StrongFocus);
buttonB->setFocusPolicy(Qt::StrongFocus);
// 隐藏按钮 A
buttonA->setVisible(false);
// 重新显示按钮 A
buttonA->setVisible(true);