1

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

我想我可以从第一个小部件中调用第二个选项卡,但在这种情况下,第二个选项卡将被隐藏,直到我不单击相应的按钮。谁能告诉我如何在第二个选项卡中使用第一个选项卡的值。

4

2 回答 2

0

您可以在 tabWidget 调用级别维护变量。并通过引用两个选项卡来传递变量。

于 2014-01-03T07:39:06.400 回答
0

我建议你使用发射连接机制。

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"));
于 2014-01-03T07:40:24.813 回答