将Qt中的变量从QTabWidget中的选项卡传递到选项卡

时间:2014-01-03 07:28:43

标签: c++ qt qtabwidget

我是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"));

我认为我可以从第一个小部件调用第二个标签,但在这种情况下,第二个标签将隐藏,直到我不点击相应的按钮。任何人都可以告诉我如何在第二个标签中使用第一个标签的值。

2 个答案:

答案 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"));