Название: Помощь при обучении (разработке) Отправлено: KsenZ от Февраль 26, 2011, 15:30 Суть в следующем, прочитал пару книг по С++ и Qt. Так как научиться программировать можно только программируя, я и придумал себе задание в виде программы. Взялся писать, и понял, что не знаю с какой стороны к ней подойти, т.е. с чего начать, правильно или нет делаю и т.д.
Вот и хотел спросить, можно ли я буду описывать свои действия здесь, или если кто нибудь согласиться то в личку (аську, скайп и т.д.). Что бы контролировать меня, правильно ли я делаю, если нет то подсказать как нужно, с чего начать и т.д. Название: Re: Помощь при обучении (разработке) Отправлено: Пантер от Февраль 26, 2011, 16:51 Стукани мне в скайп (panter_dsd), попробую помочь. Только в рабочий день.
Название: Re: Помощь при обучении (разработке) Отправлено: alexman от Февраль 26, 2011, 20:46 А что на форуме изложить вопрос запрещается?
Название: Re: Помощь при обучении (разработке) Отправлено: Пантер от Февраль 28, 2011, 08:35 Когда много вопросов, лучше в онлайне.
Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 02, 2011, 07:45 Можно постепенно, по мере их появления. Ведь каждому в скайпе не ответишь :( ...
Название: Re: Помощь при обучении (разработке) Отправлено: s200999900 от Март 02, 2011, 11:55 Когда много вопросов, лучше в онлайне. Если вам не будет трудно можно и мне вам вопросы начинающего позадавать? :) Название: Re: Помощь при обучении (разработке) Отправлено: Пантер от Март 02, 2011, 11:57 Давай, если у меня время будет.
Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 02, 2011, 13:45 Тогда, если можно такой вопрос. Есть у меня задумка, смысл программы в подсчете колличества символов в тексте, с чего начать реализацию ???
На форме разместил: QPlainTextEdit (в него планирую вводить текст), потом там есть кнопка QPushButton (по нажатии на нее будет происходить вычисление кол-ва символов), и четыре QLabel (в двух из них уже внес текст "количество символов с пробелмаи", "Количество символов без пробелов" в свой свойство text), а два остальных будут служить выводом самой информации о количестве символов. Теперь вопрос - куда копать дальше :), с чего начинать, точнее куда продолжать ??? P/S/ Принимается любое "хи-хи" реагирую адекватно ... :) Название: Re: Помощь при обучении (разработке) Отправлено: meego_man от Март 02, 2011, 13:55 Тогда, если можно такой вопрос. Есть у меня задумка, смысл программы в подсчете колличества символов в тексте, с чего начать реализацию ??? Ну а теперь самое интересное, программирование :D Добавляем обработчик нажатия кнопочки и пишем код подсчета символов. Потом все это выводим в QLabelНа форме разместил: QPlainTextEdit (в него планирую вводить текст), потом там есть кнопка QPushButton (по нажатии на нее будет происходить вычисление кол-ва символов), и четыре QLabel (в двух из них уже внес текст "количество символов с пробелмаи", "Количество символов без пробелов" в свой свойство text), а два остальных будут служить выводом самой информации о количестве символов. Теперь вопрос - куда копать дальше :), с чего начинать, точнее куда продолжать ??? P/S/ Принимается любое "хи-хи" реагирую адекватно ... :) Название: Re: Помощь при обучении (разработке) Отправлено: Пантер от Март 02, 2011, 14:02 Ну, далее читаешь в ассистенте про QTextDocument и вперед!
Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 02, 2011, 14:37 Ну а теперь самое интересное, программирование :D Добавляем обработчик нажатия кнопочки и пишем код подсчета символов. Потом все это выводим в QLabel Я правильно понял что для обработки клика по кнопке. нужно перейти на редактор сигналов и слотов и там прописать: отправитель - наша кнопка, сигнал - clicked(), получатель - выбираем тот обьект который бедт чето делать при клике на кнопке, а вот что в слот писать :) ? Я хоть примерно правильно думаю ? Название: Re: Помощь при обучении (разработке) Отправлено: meego_man от Март 02, 2011, 14:43 Ну а теперь самое интересное, программирование :D Добавляем обработчик нажатия кнопочки и пишем код подсчета символов. Потом все это выводим в QLabel Я правильно понял что для обработки клика по кнопке. нужно перейти на редактор сигналов и слотов и там прописать: отправитель - наша кнопка, сигнал - clicked(), получатель - выбираем тот обьект который бедт чето делать при клике на кнопке, а вот что в слот писать :) ? Я хоть примерно правильно думаю ? В слоте пишем код, который подсчитывает количество символов. Вот примерный мета-код: Код: NumberOfSimbolsWithSpaces = 0; Название: Re: Помощь при обучении (разработке) Отправлено: m_ax от Март 02, 2011, 16:49 Мне тоже такую штуку нужно: подсчёт символов в тексте. Но чтоб можно было считать символы из pdf документа.
Как напишете, опубликуйте) Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 02, 2011, 16:52 Эх, чет я так и непонял чего куда писать, у меня в поле слот тупо выпадающий список, и куда чего писать непонятно ... :( Да, использую Qt Creator ...
тут выложил картинку - http://foto.dbprogs.ru/qtcreator_1.jpg (http://foto.dbprogs.ru/qtcreator_1.jpg) Название: Re: Помощь при обучении (разработке) Отправлено: meego_man от Март 02, 2011, 17:05 Эх, чет я так и непонял чего куда писать, у меня в поле слот тупо выпадающий список, и куда чего писать непонятно ... :( Да, использую Qt Creator ... В режиме Изменение виджетов (F3) щелкаем правой кнопкой мыше на элементе для которого нужно написать слот (кнопка в нашем случае). Выбираем "перейти к слоту". Далее выбираем clicked (). Нас переносят в редактор кода (слот по умолчанию будет называться on_pushButton_clicked()) там все пишем :)тут выложил картинку - http://foto.dbprogs.ru/qtcreator_1.jpg (http://foto.dbprogs.ru/qtcreator_1.jpg) Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 02, 2011, 17:09 Вот, вот, именно это я и пытался найти :) ... Спасибо ...
p/s/ Думаю я скоро вернусь с новыми вопросами :) Название: Re: Помощь при обучении (разработке) Отправлено: кып от Март 02, 2011, 19:26 Предлагаю немного усложнить задачу. Пусть программа подсчитывает символы/слова в тексте не по кнопке, а сразу по мере набора. Так интересней будет. :)
Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 02, 2011, 19:53 Сложнее код не станет, просто сменится обработчик (ну или как там правильно сказать :) ) ...
Название: Re: Помощь при обучении (разработке) Отправлено: meego_man от Март 03, 2011, 00:15 Сложнее код не станет, просто сменится обработчик (ну или как там правильно сказать :) ) ... ну как сказать, тут нужно уже будет думать об оптимизации ;)Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 03, 2011, 06:14 ну как сказать, тут нужно уже будет думать об оптимизации ;) Да, об этом не подумал ... Название: Re: Помощь при обучении (разработке) Отправлено: alexman от Март 03, 2011, 07:59 Предлагаю немного усложнить задачу. Пусть программа подсчитывает символы/слова в тексте не по кнопке, а сразу по мере набора. Так интересней будет. :) Подсчет символов:1. Храним отображение QMap<QChar,int> _cache - символ->количество. 2. При вводе для символа ch делаем: _cache[ch]++; Подсчет слов: 1. Храним отображение QMap<QString,int> _cache - слово->количество. 2. Храним последнее введенное слово _lastText. 3. При вводе проверять: -если символ ch не разделитель, то: _lastText += ch; -если ch разделитель, то _cache[_lastText]++;_lastText.clear(); ЗЫ Конечно здесь учтены не все случаи. Название: Re: Помощь при обучении (разработке) Отправлено: Igors от Март 03, 2011, 12:56 Предлагаю немного усложнить задачу. Пусть программа подсчитывает символы/слова в тексте не по кнопке, а сразу по мере набора. Так интересней будет. :) Подсчет символов:1. Храним отображение QMap<QChar,int> _cache - символ->количество. 2. При вводе для символа ch делаем: _cache[ch]++; Подсчет слов: 1. Храним отображение QMap<QString,int> _cache - слово->количество. 2. Храним последнее введенное слово _lastText. 3. При вводе проверять: -если символ ch не разделитель, то: _lastText += ch; -если ch разделитель, то _cache[_lastText]++;_lastText.clear(); ЗЫ Конечно здесь учтены не все случаи. Если просто побаловаться (абы було) то, конечно, легко и приятно. А вот если надо, напр. на лету отследить вырезку/вставку блоков текста, undo и.т.п. - куда тогда девается весь энтузиазм/интерес? :) Поэтому мое мнение - все эти учебные примеры дают очень мало, надо делать реальную задачу (желательно за деньги), хотя это (часто) трудно и неприятно Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 03, 2011, 13:05 Такой вопрос, как обращаться к свойствам виджетов (дай Бог правильно написал :) ) ?
Пример, есть форма, на ней кнопка, и label, что мне прописать в коде что-бы при нажатии на кнопку изменилось свойство text виджета label ? void proba::on_pushButton_clicked() { ............... :( } Или я вообще не в ту сторону копаю ? :) Название: Re: Помощь при обучении (разработке) Отправлено: Пантер от Март 03, 2011, 13:07 В общем случае label->setText ("Some text"), могут быть вариации в зависимости от использования ui и метода включения этого ui.
Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 03, 2011, 13:33 В общем случае label->setText ("Some text"), могут быть вариации в зависимости от использования ui и метода включения этого ui. А в конкретном ? :) этих label может-же быть и 100 штук на форме ... Приведенный пример выдает 'label' was not declared in this scope Название: Re: Помощь при обучении (разработке) Отправлено: Пантер от Март 03, 2011, 13:34 Не видя h файла, сказать ничего не могу.
Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 03, 2011, 13:36 #ifndef PROBA_H
#define PROBA_H #include <QMainWindow> namespace Ui { class proba; } class proba : public QMainWindow { Q_OBJECT public: explicit proba(QWidget *parent = 0); ~proba(); private: Ui::proba *ui; private slots: void on_pushButton_clicked(); }; #endif // PROBA_H Название: Re: Помощь при обучении (разработке) Отправлено: Пантер от Март 03, 2011, 13:37 В твоем случае ui->label->setText
Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 03, 2011, 13:42 В твоем случае ui->label->setText работает ... получается я передаю данные на форму, а та на лейбл ? Я просто вспоминаю дни когда пытался кодить под Делфи, там по-моему, было немного проще. Есть объект, есть его свойства, все, указал объект, указал какие свойства изменить, и больше никаких забот, тут же все немного по другому ... Название: Re: Помощь при обучении (разработке) Отправлено: Пантер от Март 03, 2011, 13:45 ui - объект, на котором располагается другой объект (label), у которого есть свойство setText.
Тебе бы сначала с++ выучить, а потом уже за Qt браться. Название: Re: Помощь при обучении (разработке) Отправлено: dbprogs.ru от Март 03, 2011, 13:49 Тебе бы сначала с++ выучить, а потом уже за Qt браться. Тут я согласен ... Просто считаю что проще учить язык попутно решая поставленную задачу, за вышесказанное огромное спасибо, отправную точку получил ... Название: Re: Помощь при обучении (разработке) Отправлено: Пантер от Март 03, 2011, 13:52 Пока не овладеешь ЯП, решай задачи в консоли.
|