Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Глобальная переменная


Автор: Faustle 4.5.2010, 14:35
В Qt недавно, возник маленький вопрос.
Хочу объявить глобальную переменную (знаю, что нехорошо, но все же).
Объявил ее в заголовочнике:
Код

extern QString arg_strace;

Определил в одном cpp
Код

QString arg_strace;

и передал ей значение из поля ввода:
Код

arg_strace = ui->lineEdit->displayText();

Пытаюсь достать значение в другой cpp, но никаких данных не получаю.
Заголовочник с объявлением везде, где нужно прописан.
В чем подвох?

Автор: borisbn 4.5.2010, 18:04
Сделал то же самое. Результат - всё OK, в переменной то, что нужно.
main.cpp
Код

#include <QtGui/QApplication>
#include "my_widget.h"

int main( int argc, char *argv[] )
{
    QApplication a( argc, argv );
    MyWidget w;
    a.exec();
    QString tst = g_str; /// Здесь tst == тому, что я ввёл в lineEdit
}


my_widget.cpp
Код

...
QString g_str;
...
void MyWidget::on_lineEdit_returnPressed()
{
    g_str = ui.lineEdit->displayText();
}


my_widget.h
Код

extern QString g_str;

У тебя, случайно, при присвоении
Цитата(Faustle @  4.5.2010,  14:35 Найти цитируемый пост)
arg_strace = ui->lineEdit->displayText();

перед именем переменной не стоит тип ?
Цитата

QString arg_strace = ui->lineEdit->displayText();

Автор: Faustle 6.5.2010, 20:08
borisbn, спасибо! у меня походу просто баг был, я проект почистил, пересобрал и все норм стало.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)