Здравствуйте, гость ( Вход | Регистрация )
danya | Дата 1.11.2010, 23:34 |
обычно данные из диалоговых окон передаются в главное, по закрытию диалогового окна. Для этого в диалоговом окне предусматривают методы чтения данных. Например, для чтения текста из LoginSysDialog::LineEditName, можно написать метод LoginSysDialog::name, тогда в главном окне после закрытия диалога просто вызываешь этот метод. Вот у меня диалог ввода имени пользователя и пароля: Вот так используется в главном окне:
можете поподробнее описать мне также необходимо передать значения из диалога в основную форму в чем у меня ошибка? Раскрывающийся текст
|
|
Litkevich Yuriy | Дата 12.4.2010, 20:49 |
я предлагаю тему переместить из Qt в технику программирования, т.к. тут вопросы только по С/С++ | |
PunX | Дата 12.4.2010, 20:45 |
Спасибо большое за "разжёвывание" матерьяла и за терпение! | |
Litkevich Yuriy | Дата 12.4.2010, 20:36 |
вот и получается что создаю 2 объекта. а почему это вдруг так получается, для создания объекта нужен один конструктор, а какой из нескольких имеющихся выбрать тебе решать. Собственно их и делают несколько (перегружают), чтобы в разных ситуациях использовать. В одной ситуации нужен один, а в другой ситуации - другойmainwindow.h:23: warning: 'MainWindow::ui' will be initialized after подобное сообщение компилятор пишет, для случая, когда ты используешь список инициализации:Цитата MainWindow::MainWindow(QString db_l, QString db_n, QWidget *parent ) : В этом списке последовательность членов класса должна совпадать с последовательностью их объявления:QMainWindow(parent), ui(new Ui::MainWindow), // db_login( db_l ), // идёт вторым db_name( db_n ) // идёт третим Цитата class MainWindow : public QMainWindow как видишь тут последовательность отличается, а должна совпадать. Переставь либо в заголовочнике либо в списке инициализации. И всё будет путём{ Q_OBJECT public: MainWindow::MainWindow( QString db_l, QString db_n, QWidget *parent = 0 ); private: Ui::MainWindow *ui; ... QString db_name; //идёт вторым ... QString db_login; // идёт третим }; |
|
BRE | Дата 12.4.2010, 20:35 |
Покажи, что у тебя в mainwindow.h и mainwindow.cpp. |
|
PunX | Дата 12.4.2010, 20:28 |
О, заработало Спасибо! Но пока сыплються ворнинги на строку Ui::MainWindow *ui; на строку QString db_login; строка MainWindow::MainWindow(QString db_l, QString db_n, QWidget *parent ) ..... |
|
BRE | Дата 12.4.2010, 20:21 |
В файле mainwindow.h декларируй его так:
|
|
PunX | Дата 12.4.2010, 20:18 |
Я наверное уже замучал всякими вопросами дурацкими, но довести до конца и разобраться хочется, определил такой конструктор вместо тех двух, теперь создаю объект MainWindow m(db_login,db_name); такой вариант конечно же не пойдёт но и такой MainWindow m(db_login,db_name,QWidget *parent); тоже не проходит. |
|
BRE | Дата 12.4.2010, 20:05 |
Первый консруктор тебе не нужен, ведь ты должен обязательно получить db_login и db_name.
|
|
PunX | Дата 12.4.2010, 20:02 |
|
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 23.4.2024, 9:30 |