1

私は Qt の初心者で、現在 2 つのタブを持つ 1 つの QTabWidget に取り組んでいます。これは 2 つのウィジェットを意味します。

tabWidget->addTab(new First_Widget(),tr("Home"));
tabWidget->addTab(new Second_Widget(), tr("Download"));

最初のウィジェットには、2 番目のウィジェットで使用したい整数値と浮動小数点値があります。このような2番目のウィジェットのコンストラクターを作成できます

tabWidget->addTab(new Second_Widget(argument1, argument2,argument3), tr("Download"));

私は最初のウィジェットから2番目のタブを呼び出すことができると思いますが、その場合、2番目のタブはそれぞれのボタンをクリックしない限り非表示になります。最初のタブの値を2番目のタブで使用する方法を教えてください。

4

2 に答える 2

0

tabWidget 呼び出しレベルで変数を維持できます。両方のタブへの参照によって変数を渡します。

于 2014-01-03T07:39:06.400 に答える
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"));
于 2014-01-03T07:40:24.813 に答える