Название: передать форме данные при создании Отправлено: stanukih от Апрель 19, 2016, 11:43 Разрабатываю приложение для работы с бд (MySQL). Данные должны быть представлены в разном виде в зависимости от значений одного поля. Главная форма mainwindows.cpp используется для соединения с базой (авторизация). Планировал сделать следующее - после успешной авторизации считываются все данные. При проходе по ним открывается соответствующая форма. Требуется ей передать данные ключ к запись бд которую нужно показать. Как передать этот параметр при открытии формы?
Название: Re: передать форме данные при создании Отправлено: kambala от Апрель 19, 2016, 12:10 в конструкторе передавать например
Название: Re: передать форме данные при создании Отправлено: stanukih от Апрель 19, 2016, 17:57 Не получается, ошибка ошибка: default argument missing for parameter 2 of 'standart::standart(QWidget*, int)' explicit standart(QWidget *parent = 0, int ok);
Название: Re: передать форме данные при создании Отправлено: Old от Апрель 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. Название: Re: передать форме данные при создании Отправлено: stanukih от Апрель 19, 2016, 18:10 Цитировать Параметры с значениями по умолчанию должны всегда идти после обязательных параметров. Поменяйте местами QWidget* и int. Спасибо теперь то что я и хотел.Цитировать Вам нужно подучить C++ Полностью согласен - стараюсь учить во время написания, на простое чтение книг нет ни времени, ни желания. Название: Re: передать форме данные при создании Отправлено: Alex Custov от Апрель 19, 2016, 18:45 Полностью согласен - стараюсь учить во время написания Самый непродуктивный способ изучения языка, которым и пользуются все новички. Название: Re: передать форме данные при создании Отправлено: Old от Апрель 19, 2016, 18:50 Самый непродуктивный способ изучения языка, которым и пользуются все новички. Да еще и с Qt его учить совсем плохо. Qt навязывает определенные подходы, рамки.Название: Re: передать форме данные при создании Отправлено: Bepec от Апрель 19, 2016, 19:04 А можно примеры подходов и рамок?
PS вдруг у меня они таки висят. Название: Re: передать форме данные при создании Отправлено: Old от Апрель 19, 2016, 19:17 А можно примеры подходов и рамок? Неумение правильно управлять памятью (надежда на удаление объектов parentом);PS вдруг у меня они таки висят. Неумение использовать множественное наследование; Примеры Qt часто смешивают GUI и функционал (для примеров это нормально, но обучаемый начинает использовать такой же подход и в нормальных проектах). Навязывается готовое дерево классов, а для обсучения полезней прорабатывать свои деревья. При изучении ООП нужно учиться выделять сущности, их анализировать, описывать взаимодействия между объектами, а Qt дает все готовое. По хорошему, при изучении ООП, хорошо писать какие нибудь симуляторы, где множество разных объектов взаимодействуют друг с другом. Тогда и C++ получится использовать полноценно, а не как C с вектором. Название: Re: передать форме данные при создании Отправлено: Bepec от Апрель 19, 2016, 19:51 Кхм. Разве что множественное наследование пойдёт в копилку. Всё остальное не катит :D
Название: Re: передать форме данные при создании Отправлено: Igors от Апрель 20, 2016, 11:39 Действительно, как должно выглядеть "изучение языка"? Чтение книг? Ну это вряд ли - лично у меня половина энтузиазма испаряется уже после перелистывания обильного предисловия (благодарностей и.т.п.). Дальше идут довольно прописные истины, в лучшем случае пример на гнусной жабе, в который мне мучительно трудно вникнуть. И дело кончается типа "эхх.. да ладно..."
Другие упорно поглощают весь "синтаксический сахар", обычно злоупотребляя std. Лямбды, const_expr, сомнительная любовь к итераторам и.т.п. - все это немедленно добавляется в арсенал. Воспользоваться какой-то замшелой ф-цией std - дело чести. В рез-те код настолько "заджазован" что понять его мудрено. И все-таки "учить язык по ходу дела, осваивая Qt" - несомненно худший вариант. Конечно читать доку (букварь) программист обязан, без этого не обойтись, но это очень слабо связано со знанием языка, здесь упор на "полезные вещи" быстро приносящие практический рез-т (вызов готового класса). Плохо то что очень быстро у человека формируется стойкое убеждение: всегда и везде "надо пользоваться готовым", на свои решения он не способен. Ведь он никогда ничего и не проектировал, никаких классов не сочинял (только "формы"), переписывал примеры - и все. Впрочем "а был ли мальчик" - ведь сейчас программирование модно, и многие идут в него совсем не по призванию. Конечно легко советовать, мол, "ты сначала плюсы подучи, а потом с Qt благодать" - считаю это совершенно верно. Но неясно что человеку делать, ведь он не может оказаться в моем времени когда ничего не было и приходилось копошиться самому. "Поработай сначала c char *, а потом уж говнокодь с QString" - мудрый совет, но вряд ли многие будут ему следовать. Название: Re: передать форме данные при создании Отправлено: Smogg от Май 05, 2016, 23:32 Самый непродуктивный способ изучения языка, которым и пользуются все новички. Да еще и с Qt его учить совсем плохо. Qt навязывает определенные подходы, рамки.Название: Re: передать форме данные при создании Отправлено: Racheengel от Май 06, 2016, 00:00 Полностью согласен - стараюсь учить во время написания Самый непродуктивный способ изучения языка, которым и пользуются все новички. А есть другие варианты кроме learning by doing? Писать продакшен код всяко лучше вместо того, чтобы говнокодить абстрактную муйню по примерам из книжек. Название: Re: передать форме данные при создании Отправлено: Smogg от Май 06, 2016, 01:07 А есть другие варианты кроме learning by doing? Глупость брякнули, право) Сначала learning, а уж потом doing. Как говаривал Ницше: "Лишь построив дом научаешься тому, что должен был знать с самого начала". Научится-то научился, но дом-то уже построен!Писать продакшен код всяко лучше вместо того, чтобы говнокодить абстрактную муйню по примерам из книжек. Название: Re: передать форме данные при создании Отправлено: Bepec от Май 06, 2016, 03:19 Попробуйте современные учебники с примерами по C++. Такой мути я не видел со школьной скамьи. Мало того, 60% материала откровенно не нужного. Из целых разделов можно убрать всё кроме пары глав - и вообще ничего не изменится :D
PS если уж и учить, то по страуструпу :D Название: Re: передать форме данные при создании Отправлено: Racheengel от Май 06, 2016, 15:50 А есть другие варианты кроме learning by doing? Глупость брякнули, право) Сначала learning, а уж потом doing. Как говаривал Ницше: "Лишь построив дом научаешься тому, что должен был знать с самого начала". Научится-то научился, но дом-то уже построен!Писать продакшен код всяко лучше вместо того, чтобы говнокодить абстрактную муйню по примерам из книжек. Не имея нормальной практики, по книжкам не выучишься. Это так же, как не выучиться летать на самолете по книжке. А дом, что дом... Если крепкий получился - то пусть стоит, а если нет, то сам развалится. Зато будет опыт, "как строить нельзя" :) Название: Re: передать форме данные при создании Отправлено: Igors от Май 06, 2016, 17:43 Не имея нормальной практики, по книжкам не выучишься. С этим никто не спорит, но где молодому человеку взять нормальную практику? Ведь чувствовать какая задача реальна а какая фантазия приходит после многих лет работы (и то не всегда).Цитировать Мудрость приходит со старостью, но старость чаще приходит одна :)Название: Re: передать форме данные при создании Отправлено: Bepec от Май 06, 2016, 18:29 Как показывает практика, всё реально, вопрос лишь в количестве костылей :D
Название: Re: передать форме данные при создании Отправлено: stetsenko от Май 10, 2016, 23:07 странно что с помощью конструктора не получается
|