作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在添加小部件,同样想删除该小部件,但无法从布局中删除该小部件。
void mywindow::popUpWindow()
{
if(stack1->currentIndex()==0){
mainLayout->removeWidget(stack3);
mainLayout->addWidget(stack2);
this->setGeometry(80,50,250,200);
}
if(stack1->currentIndex()==1){
mainLayout->removeWidget(stack2);
mainLayout->addWidget(stack3);
this->setGeometry(80,50,250,200);
}
}
我正在检查 QStackedWidget
的 currentIndex
,然后添加和删除小部件。
最佳答案
您应该拥有一个 QStackedWidget,将所有页面放入其中并使用其功能在页面之间切换,而不是拥有许多 QStackedWidget 并在它们之间手动切换。如果你喜欢有两个 QStackedWidgets,最好创建第三个 QStackedWidget,放置两个 QStackedWidgets 并在它们之间轻松切换。您无需手动操作布局。
无论如何,removeWidget
方法只会禁用小部件的几何管理。它拥有与以前相同的父级和位置。如果你想让它消失,你必须手动隐藏它。
实际上,你可以直接调用stack2->hide(); stack3->show();
并删除布局方法的使用。您不必从布局中删除小部件,只需将其隐藏即可。
关于c++ - removeWidget() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21090616/
我正在添加小部件,同样想删除该小部件,但无法从布局中删除该小部件。 void mywindow::popUpWindow() { if(stack1->currentIndex()==0){
我是一名优秀的程序员,十分优秀!