用Qt中的指针更改布局内容
Change layout content with pointers in Qt
是否可以用指针更改布局的内容?
我想做如下的事情。
在标题中:
QWidget* activeView;
QWidget* one;
QWidget* two;
...
在源文件中,我在构造函数中设置了Widgets,并将第一个推送到布局中:
activeView = one;
ui->activeLayout->addWidget(activeView);
稍后使用插槽或方法,我想更改activeView
:
activeView = two;
我试过了,但不起作用。我甚至调用了布局的update()
方法。
不幸的是,这不会起作用。
你想要的是QStackedWidget
。官方文件在这里。
如果你不想使用这个小部件,并且想手动进行,你将不得不在代码中自己重构布局。它可以用一种方法包装,不会太难看。
示例:
void clearLayout(QLayout *layout)
{
if (layout) {
while(layout->count() > 0){
QLayoutItem *item = layout->takeAt(0);
delete item->widget();
delete item;
}
}
}
void setNewWidgetVisible(QWidget *activeView)
{
clearLayout(ui->activeLayout);
ui->activeLayout->addWidget(activeView);
}
相关文章:
- 1d 智能指针不适用于语法 (*)++
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么使用 "this" 指针调用派生成员函数?
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用指针从C++中的数组中获取最大值
- 助记符和指向成员语法的指针
- 嵌入方指针压缩已禁用
- 数组的指针从不分段故障
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 何时在引用或唯一指针上使用移动语义
- QMetaObject invokeMethod的基于函数指针的语法
- 如何从 std::atomic 中提取指针 T<T>?
- 如何在 C# 中映射双 C 结构指针?
- C++将浮点指针值舍入为小数位数
- 为什么++(*p)更改指针值
- 在标准布局对象中进行指针运算(例如,使用偏移量)时,我们是否需要使用 std::launder?
- 用Qt中的指针更改布局内容
- 如何读取指向派生类的基类指针数组的内存布局
- 如何断言特定类的布局中没有任何vtbl指针
- 类数据成员内存布局显示指针大小过大