Передача переменной в 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"));

и я думаю, что я могу вызвать вторую вкладку из первого виджета, но в этом случае вторая вкладка будет скрыта, пока я не нажму соответствующую кнопку. Может кто-нибудь сказать мне, как я могу использовать значения первой вкладки во второй.

1

Решение

Вы можете поддерживать переменные на уровне вызова tabWidget. и передать переменные по ссылке на обе вкладки.

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"));
0

По вопросам рекламы [email protected]