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

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

Страниц: 1 [2] 3 4 ... 10   Вниз
  Печать  
Автор Тема: Моё первое приложение  (Прочитано 65390 раз)
PinkPink
Гость
« Ответ #15 : Март 24, 2012, 14:47 »

можно ведь использовать один и тот же обработчик событий для нескольких кнопок? Только определённая кнопка будет передавать в этот обработчик определённый параметр
Записан
Blackwanderer
Гость
« Ответ #16 : Март 24, 2012, 15:00 »

можно ведь использовать один и тот же обработчик событий для нескольких кнопок? Только определённая кнопка будет передавать в этот обработчик определённый параметр
Только в терминах Qt это сигналы и слоты. Кнопка при нажатии генерирует сигнал, в котором передаёт текст. Сигналы от всех кнопок конектятся к одному слоту, который вставляет текст.
Вопрос про задачу в целом прозвучал неспроста. Вы сейчас делаете распространённую ошибку начинающих программистов: пытаетесь решать задачу по ходу. Но это неправильно. Вначале нужно чётко предствить архитектуру приложения. Разбить её на модули/классы, прописать интерфейсы, продумать взаимодействие частей и только потом переходить к коду. В противном случае код будет переписываться по многу раз и в конечном счёте может оказаться, что та подзадача, которую вы обозначили в вопросе, в таком виде вообще не подходит для создания приложения.
ООП изучали? Какие книги читаете? Какие языки знаете? Какие именно разделы c++ уже прошли?
И не бойтесь, что вы кого-то напряжёте. Опытным людям интересны именно сложные задачи. Это как вызов, проверка своего мастерства. Чем сложнее задача, чем обстоятельнее вы её изложите, тем больше вероятность, что откликнутся именно знающие люди.
« Последнее редактирование: Март 24, 2012, 15:06 от Черный Странник » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Март 24, 2012, 15:03 »

Насчёт value я так делала на php, как здесь такое реализовать не знаю. Если я сморозила глупость - извините, но объясните. Я не собираюсь ныть - "сделайте за меня". Я хочу понять. Поэтому, не обладая достаточными знаниями как минимум выдвигаю идеи, чтобы мы могли вместе по рассуждать. Или я не правильно поступаю?
Ну как сказать.. Безусловно Вы поступаете корректно. Но согласитесь - Ваши общие соображения довольно очевидны и никаких усилий не требуют. Действуйте более целеустремленно/конкретно, напр

- определитесь нужен ли Вам многострочный текст или достаточно 1 строки? (легче)

- какой класс в Qt соответствует нужному тексту? Открываете букварь (называется Assistant) и находите. Это лучше сделать самой без вопросов на форуме

- изучаете этот класс, напр как узнать позицию каретки, как вставить текст. Эти ф-ции должны быть, Вам надо только их найти

И.т.д. Конечно Вы не станете профессиональным программистом завтра, но решить задачки - сможете запросто
Записан
PinkPink
Гость
« Ответ #18 : Март 24, 2012, 15:09 »

можно ведь использовать один и тот же обработчик событий для нескольких кнопок? Только определённая кнопка будет передавать в этот обработчик определённый параметр
Только в терминах Qt это сигналы и слоты. Кнопка при нажатии генерирует сигнал, в котором передаёт текст. Сигналы от всех кнопок конектятся к одному слоту, который вставляет текст.
Вопрос про задачу в целом прозвучал неспроста. Вы сейчас делаете распространённую ошибку начинающих программистов: пытаетесь решать задачу по ходу. Но это неправильно. Вначале нужно чётко предствить архитектуру приложения. Разить её на модули/классы, прописать интерфейсы, продумать взаимодействие частей и только потом переходить к коду. В противном случае код будет перепичываться по многу раз и в конечном счёте может оказаться, что та подзадача, которую вы обозначили в вопросе, в таком виде вообще не подходит для создания приложения.
ООП изучали? Какие книги читаете? Какие языки знаете? Какие именно разделы c++ уже прошли?
И не бойтесь, что вы кого-то напряжёте. Опытным людям интересны именно сложные задачи. Это как вызов, проверка своего мастерства. Чем сложнее задача, чем обстоятельнее вы её изложите, тем больше вероятность, что откликнутся именно знающие люди.
Учили basic, сама учила немного пшп, sql-запросы, С++ - ну массивы всякие, строки, функции, классы, структуры, объяединения, стеки, деки ну и т.п. Сейчас занимаемся классами-наследниками и перегрузкой операций.
Задача состоит в разработке программы по генерации упражнений. Т.е. программа для преподавателя. Преподаватель вводит шаблон задания и обозначает какие поля будут генерироваться.
Само задание состоит из нескольких. Вариации этих нескольких заданий тоже будут генерироваться. В принципе, я уже представляю себе интерфейс (разрисовала всё в тетраде, где какие окна, запросы и прочее), примерно предаставляю структуру базы данных. Вообщем чисто теоретически весь проект я уже для себя разжевала. Вплоть до сообщений об ошибках. Остлось реализовать всё это с помощью языка, который я сегодня вижу в первый раз
Записан
PinkPink
Гость
« Ответ #19 : Март 24, 2012, 15:20 »

Насчёт value я так делала на php, как здесь такое реализовать не знаю. Если я сморозила глупость - извините, но объясните. Я не собираюсь ныть - "сделайте за меня". Я хочу понять. Поэтому, не обладая достаточными знаниями как минимум выдвигаю идеи, чтобы мы могли вместе по рассуждать. Или я не правильно поступаю?
Ну как сказать.. Безусловно Вы поступаете корректно. Но согласитесь - Ваши общие соображения довольно очевидны и никаких усилий не требуют. Действуйте более целеустремленно/конкретно, напр

- определитесь нужен ли Вам многострочный текст или достаточно 1 строки? (легче)

- какой класс в Qt соответствует нужному тексту? Открываете букварь (называется Assistant) и находите. Это лучше сделать самой без вопросов на форуме

- изучаете этот класс, напр как узнать позицию каретки, как вставить текст. Эти ф-ции должны быть, Вам надо только их найти

И.т.д. Конечно Вы не станете профессиональным программистом завтра, но решить задачки - сможете запросто

если бы дело ограничивалось задачками..
написать полноценную программу нужно в течении месяца, я уж умалчиваю о том, что у меня помимо этого ещё море предметов. Поэтому я ищу способы, для более быстрого усвоения материала и разбора конкретной задачи, а не всего Qt.
Текст многострочный, проблема не в том, что я не знаю функций) проблема в том, что я даже не знаю куда писать и как всё это связывать. Извините, но я думаю вы тоже когда смотрели на новый язык как Я (как баран на новые ворота). Знаете ли синтаксис везде разный. Ну взять к примеру вот эту запись
QTextCursor QTextEdit::textCursor () const
вам возможно она говорит многое, мне она говорит - это что то про функцию не возвращающую значению, чтото про курсор, правку текста и параметры в виде строки и текста вроде. Но не куда это пишется ни как привязывается к чему либо, зачем тут :: и прочее
Не сочтите за тупость, а просто за незнание языка.
Кстати, на данный момент читаю Шлее и Бланшет, Саммерфилд. Немного не понятно, потому что они изначально всё делают через main()
{
}
а мне надо работать именно с MainWindow
Записан
Blackwanderer
Гость
« Ответ #20 : Март 24, 2012, 15:21 »

А какой опыт на c++? Какие программы написаны (понимаю, что скорее всего только несколько лабораторных)? Осталось ли что-нибудь непонятного по этим программам? По Qt идеальной книгой считаю "Qt4: Програмированние GUI на С++" Бланшета и Саммерфилда. Может стоит начать с нескольких примеров, чтобы разобраться в архитектуре и идеологии Qt?
Записан
Blackwanderer
Гость
« Ответ #21 : Март 24, 2012, 15:24 »

Немного не понятно, потому что они изначально всё делают через main()
{
}
а мне надо работать именно с MainWindow
Чтобы понять, как программа будет работать и как сделать всё что нужно через графический интерфейс перетаскиванием окошек, нужно вначале понять как всё тоже самое сделать через "main".
Записан
PinkPink
Гость
« Ответ #22 : Март 24, 2012, 15:24 »

Мои продвижения: разобралась, что для кнопочек пишем вот такой обработчик ( или слот,да?)
void MainWindow::on_type_clicked() где type - имя кнопки
Но таким образом получается, что для каждой кнопки нужен свой слот( ой или это обработчик сигнала..,ща порыщу по книге)
где-то в Property наверное можно выбрать обработчик для кнопки, только как-таки к кнопке привязать определённый текст?
Записан
Blackwanderer
Гость
« Ответ #23 : Март 24, 2012, 15:30 »

Мои продвижения: разобралась, что для кнопочек пишем вот такой обработчик ( или слот,да?)
void MainWindow::on_type_clicked() где type - имя кнопки
Но таким образом получается, что для каждой кнопки нужен свой слот( ой или это обработчик сигнала..,ща порыщу по книге)
где-то в Property наверное можно выбрать обработчик для кнопки, только как-таки к кнопке привязать определённый текст?
Чтобы привязать к кнопке текст вам нужно создать собственный клас, наследующий от кнопки и у него завести поле с текстом. Затем сигнал clicked() от такой кнопки сконнектить со слотом (который нужно создать) который будет вставлять текст.
Записан
PinkPink
Гость
« Ответ #24 : Март 24, 2012, 15:34 »

Мои продвижения: разобралась, что для кнопочек пишем вот такой обработчик ( или слот,да?)
void MainWindow::on_type_clicked() где type - имя кнопки
Но таким образом получается, что для каждой кнопки нужен свой слот( ой или это обработчик сигнала..,ща порыщу по книге)
где-то в Property наверное можно выбрать обработчик для кнопки, только как-таки к кнопке привязать определённый текст?
Чтобы привязать к кнопке текст вам нужно создать собственный клас, наследующий от кнопки и у него завести поле с текстом. Затем сигнал clicked() от такой кнопки сконнектить со слотом (который нужно создать) который будет вставлять текст.
тогда наверное проще будет в этом слоте сделать проверку  на название кнопки, от которой пришёл сигнал и в засимости от какой кнопки пришёл сигнал - такой текст и вставлять. Или так не лучше?
Записан
Blackwanderer
Гость
« Ответ #25 : Март 24, 2012, 15:41 »

тогда наверное проще будет в этом слоте сделать проверку  на название кнопки, от которой пришёл сигнал и в засимости от какой кнопки пришёл сигнал - такой текст и вставлять. Или так не лучше?
Вы так не сможете. Слот только знает, что пришел сигнал. От кого - он не знает.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #26 : Март 24, 2012, 15:47 »

Вопрос про задачу в целом прозвучал неспроста. Вы сейчас делаете распространённую ошибку начинающих программистов: пытаетесь решать задачу по ходу. Но это неправильно. Вначале нужно чётко предствить архитектуру приложения. Разбить её на модули/классы, прописать интерфейсы, продумать взаимодействие частей и только потом переходить к коду.
И что, в Ваших задачах все именно так и происходит? Позвольте в этом усомниться Улыбающийся Какая-то реальная "архитектура" осознается после релиза 1.0, А до этого есть соображения, прикидки типа "ну вроде вот так правильно". Это нормально. А следовать "раз и навсегда утвержденному плану" столь же плохо как и "начинать на авось"
Записан
PinkPink
Гость
« Ответ #27 : Март 24, 2012, 15:51 »

класс, наследующий от кнопки...
это получается для каждой кнопки свой чтоли?
Записан
Blackwanderer
Гость
« Ответ #28 : Март 24, 2012, 15:53 »

класс, наследующий от кнопки...
это получается для каждой кнопки свой чтоли?
Ваша конкретная кнопка на форме - не класс, а объект класса. Класс один - объектов много.
Записан
PinkPink
Гость
« Ответ #29 : Март 24, 2012, 15:58 »

ааа, дошло! тогда у каждой кнопки появится текстовое поле, которое мне так необходимо!
синтаксис такой же как и в С++ ??
ща поищу пока в книжке что-нить про классы
Записан
Страниц: 1 [2] 3 4 ... 10   Вверх
  Печать  
 
Перейти в:  


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