Russian Qt Forum
Сентябрь 27, 2024, 14:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: передать форме данные при создании  (Прочитано 10529 раз)
stanukih
Гость
« : Апрель 19, 2016, 11:43 »

Разрабатываю приложение для работы с бд (MySQL). Данные должны быть представлены в разном виде в зависимости от значений одного поля. Главная форма mainwindows.cpp используется для соединения с базой (авторизация). Планировал сделать следующее - после успешной авторизации считываются все данные. При проходе по ним открывается соответствующая форма. Требуется ей передать данные ключ к запись бд которую нужно показать. Как передать этот параметр при открытии формы?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #1 : Апрель 19, 2016, 12:10 »

в конструкторе передавать например
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
stanukih
Гость
« Ответ #2 : Апрель 19, 2016, 17:57 »

Не получается, ошибка ошибка: default argument missing for parameter 2 of 'standart::standart(QWidget*, int)' explicit standart(QWidget *parent = 0, int ok);

Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #3 : Апрель 19, 2016, 17:59 »

Не получается, ошибка ошибка: default argument missing for parameter 2 of 'standart::standart(QWidget*, int)' explicit standart(QWidget *parent = 0, int ok);
Вам нужно подучить C++.
Параметры с значениями по умолчанию должны всегда идти после обязательных параметров. Поменяйте местами QWidget* и int.
Записан
stanukih
Гость
« Ответ #4 : Апрель 19, 2016, 18:10 »

Цитировать
Параметры с значениями по умолчанию должны всегда идти после обязательных параметров. Поменяйте местами QWidget* и int.
Спасибо теперь то что я и хотел.

Цитировать
Вам нужно подучить C++
Полностью согласен - стараюсь учить во время написания, на простое чтение книг нет ни времени, ни желания.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Апрель 19, 2016, 18:45 »

Полностью согласен - стараюсь учить во время написания

Самый непродуктивный способ изучения языка, которым и пользуются все новички.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #6 : Апрель 19, 2016, 18:50 »

Самый непродуктивный способ изучения языка, которым и пользуются все новички.
Да еще и с Qt его учить совсем плохо. Qt навязывает определенные подходы, рамки.
Записан
Bepec
Гость
« Ответ #7 : Апрель 19, 2016, 19:04 »

А можно примеры подходов и рамок?
PS вдруг у меня они таки висят.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #8 : Апрель 19, 2016, 19:17 »

А можно примеры подходов и рамок?
PS вдруг у меня они таки висят.
Неумение правильно управлять памятью (надежда на удаление объектов parentом);
Неумение использовать множественное наследование;
Примеры Qt часто смешивают GUI и функционал (для примеров это нормально, но обучаемый начинает использовать такой же подход и в нормальных проектах).
Навязывается готовое дерево классов, а для обсучения полезней прорабатывать свои деревья.
При изучении ООП нужно учиться выделять сущности, их анализировать, описывать взаимодействия между объектами, а Qt дает все готовое.
По хорошему, при изучении ООП, хорошо писать какие нибудь симуляторы, где множество разных объектов взаимодействуют друг с другом. Тогда и C++ получится использовать полноценно, а не как C с вектором.
Записан
Bepec
Гость
« Ответ #9 : Апрель 19, 2016, 19:51 »

Кхм. Разве что множественное наследование пойдёт в копилку. Всё остальное не катит Веселый
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Апрель 20, 2016, 11:39 »

Действительно, как должно выглядеть "изучение языка"? Чтение книг? Ну это вряд ли - лично у меня половина энтузиазма испаряется уже после перелистывания обильного предисловия (благодарностей и.т.п.). Дальше идут довольно прописные истины, в лучшем случае пример на гнусной жабе, в который мне мучительно трудно вникнуть. И дело кончается типа "эхх.. да ладно..."

Другие упорно поглощают весь "синтаксический сахар", обычно злоупотребляя std. Лямбды, const_expr, сомнительная любовь к итераторам и.т.п. - все это немедленно добавляется в арсенал. Воспользоваться какой-то замшелой ф-цией std - дело чести. В рез-те код настолько "заджазован" что понять его мудрено.

И все-таки "учить язык по ходу дела, осваивая Qt" - несомненно худший вариант. Конечно читать доку (букварь) программист обязан, без этого не обойтись, но это очень слабо связано со знанием языка, здесь упор на "полезные вещи" быстро приносящие практический рез-т (вызов готового класса). Плохо то что очень быстро у человека формируется стойкое убеждение: всегда и везде "надо пользоваться готовым", на свои решения он не способен. Ведь он никогда ничего и не проектировал, никаких классов не сочинял (только "формы"),  переписывал примеры - и все. Впрочем "а был ли мальчик" - ведь сейчас программирование модно, и многие идут в него совсем не по призванию. 

Конечно легко советовать, мол, "ты сначала плюсы подучи, а потом с Qt благодать" - считаю это совершенно верно. Но неясно что человеку делать, ведь он не может оказаться в моем времени когда ничего не было и приходилось копошиться самому. "Поработай сначала c char *, а потом уж говнокодь с QString" - мудрый совет, но вряд ли многие будут ему следовать.
Записан
Smogg
Гость
« Ответ #11 : Май 05, 2016, 23:32 »

Самый непродуктивный способ изучения языка, которым и пользуются все новички.
Да еще и с Qt его учить совсем плохо. Qt навязывает определенные подходы, рамки.
Этточно. После Кьюта чистый цпп  - сплошное самоиздевательство) Но кьютовый цпп вне Кьюта и не существует) Такая вот дилемма
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #12 : Май 06, 2016, 00:00 »

Полностью согласен - стараюсь учить во время написания

Самый непродуктивный способ изучения языка, которым и пользуются все новички.

А есть другие варианты кроме learning by doing?
Писать продакшен код всяко лучше вместо того, чтобы говнокодить абстрактную муйню по примерам из книжек.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Smogg
Гость
« Ответ #13 : Май 06, 2016, 01:07 »

А есть другие варианты кроме learning by doing?
Писать продакшен код всяко лучше вместо того, чтобы говнокодить абстрактную муйню по примерам из книжек.
Глупость брякнули, право) Сначала learning, а уж потом doing. Как говаривал Ницше: "Лишь построив дом научаешься тому, что должен был знать с самого начала". Научится-то научился, но дом-то уже построен!
Записан
Bepec
Гость
« Ответ #14 : Май 06, 2016, 03:19 »

Попробуйте современные учебники с примерами по C++. Такой мути я не видел со школьной скамьи. Мало того, 60% материала откровенно не нужного. Из целых разделов можно убрать всё кроме пары глав - и вообще ничего не изменится Веселый

PS если уж и учить, то по страуструпу Веселый
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 23.