Название: как получить доступ к переменной с другой формы Отправлено: oleksiy22 от Май 22, 2011, 11:19 Есть приложение в которой 2 формы: MainWindow, Dialog !В modules есть переменная int a...
как мне с modules получить значение переменной с MainWindow? Есть такой способ.. но он мне не оч нравитсо... может другие есть варианты? помню в с++ Buildere можна было получить доступ к переменной не создавай ее екземляра к примеру MainWindow::a.... но в Qt оно ругаетсо на такое... modules::modules(QWidget *parent) : QDialog(parent), ui(new Ui::modules) { MainWindow w; int b=w.a; ui->setupUi(this); } Название: Re: как получить доступ к переменной с другой формы Отправлено: Etud от Май 22, 2011, 11:25 У Вас главное окно вызывается в диалоге ?
Может должно быть наоброт ! Название: Re: как получить доступ к переменной с другой формы Отправлено: oleksiy22 от Май 22, 2011, 11:35 что я имею введу..
Код: int main(int argc, char *argv[]) теперь про саму форму MainWindow.. у нее оч много переменныхх и функц... connect(setting_action,SIGNAL(triggered()),this,SLOT(load_modules)); Код: void MainWindow::load_modules() а вот теперь тут самое главное в modules.cpp Код: modules::modules(QWidget *parent) : Название: Re: как получить доступ к переменной с другой формы Отправлено: oleksiy22 от Май 22, 2011, 11:39 У Вас главное окно вызывается в диалоге ? вот modules и есть диалоговое окно которое вызиваетсо с MainWindowМожет должно быть наоброт ! Название: Re: как получить доступ к переменной с другой формы Отправлено: kambala от Май 22, 2011, 11:43 если хочется именно так (MainWindow w; int b=w.a;), тогда уж приводи parent к типу MainWindow и из него выдёргивай значение.
а вообще нужную переменную MainWindow можно просто в конструктор modules подсунуть. или в modules создать метод типа setMyVariable(int a). можно получить доступ к переменной, не создавая экземпляра класса, объявив её статической Название: Re: как получить доступ к переменной с другой формы Отправлено: oleksiy22 от Май 22, 2011, 11:46 если хочется именно так (MainWindow w; int b=w.a;), тогда уж приводи parent к типу MainWindow и из него выдёргивай значение. к примеру как.. а то что то тяжело понять как ето в Qt Сделать.. прост еще новичека вообще нужную переменную MainWindow можно просто в конструктор modules подсунуть. или в modules создать метод типа setMyVariable(int a). можно получить доступ к переменной, не создавая экземпляра класса, объявив её статической Название: Re: как получить доступ к переменной с другой формы Отправлено: kambala от Май 22, 2011, 11:55 похоже, что ты новичок в С++
Код
Код
Название: Re: как получить доступ к переменной с другой формы Отправлено: danquimby от Май 22, 2011, 12:02 можно не много по другому сделать , если тебе не 1 переменная нужна а все mainwindow
Код: modules::modules(QWidget *parent) : Название: Re: как получить доступ к переменной с другой формы Отправлено: kambala от Май 22, 2011, 12:10 а почему не qobject_cast?
Название: Re: как получить доступ к переменной с другой формы Отправлено: oleksiy22 от Май 22, 2011, 12:24 спасибо всем.. придетсо опять сидеть за книгами и с++ повторять ;D
Название: Re: как получить доступ к переменной с другой формы Отправлено: danquimby от Май 22, 2011, 14:01 а почему не qobject_cast? А ты знаешь отличие ? просто qobject_cast дает способ понять , что там не то к чемумы хотим приравнять . А так можно и через него сделать.Человек и так плохо С++ знает а ты его еще это хошь погрузить. Название: Re: как получить доступ к переменной с другой формы Отправлено: kambala от Май 22, 2011, 14:05 имхо напрямую приводить базовый класс к классу-наследнику как-то... нехорошо
|