我是Qt的新手,目前正在开发一个QTabWidget,它有两个标签就意味着两个小部件,
tabWidget->addTab(new First_Widget(),tr("Home"));
tabWidget->addTab(new Second_Widget(), tr("Download"));
第一个小部件有一些整数和浮点值我想在第二个小部件中使用。我可以像这样制作第二个小部件的构造函数
tabWidget->addTab(new Second_Widget(argument1, argument2,argument3), tr("Download"));
我认为我可以从第一个小部件调用第二个标签,但在这种情况下,第二个标签将隐藏,直到我不点击相应的按钮。任何人都可以告诉我如何在第二个标签中使用第一个标签的值。
答案 0 :(得分:0)
您可以在tabWidget调用级别维护变量。并通过引用两个选项卡传递变量。
答案 1 :(得分:0)
我建议你使用emit-connect机制。
First_Widget
在整数和浮点数发生变化时发出信号,Second_Widget
将此信号连接到关联的广告位。
Second_Widget
只需知道和接口即可作为构造函数参数传递:
// demo code, not tested
class IEmmiter
{
Q_OBJECT
signal:
void Integer1Changed(int new_value);
.....
};
class First_Widget : public IEmmiter
{
};
class Second_Widget
{
Second_Widget(const IEmmiter & emmiter)
{
connect(&emmiter, SIGNAL(Integer1Changed(int)), this, SLOT(Integer1Changed(int)));
....
}
};
// on your programm
auto fw = First_Widget();
auto sw = Second_Widget(*fw);
tabWidget->addTab(fw, tr("Home"));
tabWidget->addTab(sw, tr("Download"));