我在运行应用程序时动态创建接口。
1) 我有带有 4 个预定义选项卡的 QTabWidget。但我必须只显示 1 或 2 个选项卡,以防用户选择。在 StackOverflow 上我了解到,我必须将所有选项卡保存在集合中才能添加和销毁它。
我有 QHash:twInputMethodsTabs = new QHash< int, QPair<QWidget*, QString> >();
第一个参数 = 索引;第二 = 选项卡小部件;第三 = 选项卡小部件标题文本;
2)我这样填写集合:
for(int i = 0; i < ui->twInputMethods->children().length(); i++)
{
twInputMethodsTabs->insert(i, QPair<QWidget*, QString>(ui->twInputMethods->widget(i), ui->twInputMethods->tabText(i)));
}
3)我在标签中添加新的小部件,如下所示:
twInputMethodsTabs->value(1).first->layout()->addWidget(cmbbCommands);
4) 如何向此小部件添加新布局?我想这样做:
QHBoxLayout *hblParams =new QHBoxLayout();
twInputMethodsTabs->value(1).first->layout()->addLayout(hblParams);
但它不起作用,因为layout()
返回QLayout
which haventaddLayout()
函数。我怎么能这样做?
或者我应该如何改变代码架构来做到这一点?