Russian Qt Forum

Qt => Общие вопросы => Тема начата: Firefox от Октябрь 09, 2009, 22:14



Название: нужно задание
Отправлено: Firefox от Октябрь 09, 2009, 22:14
На работе изучаю Qt и параллельно делаю программки. но боюсь этого мало, область изучения по рабочим вопросам узкая. Может у кого-то есть вариант задания, решение которого позволит изучить более сложные области чем расположение на форме виджетов. Скажем например связанные с потоками и процессами, только что это было ещё и интересно, а не примитив совсем. буду благодарна ::)


Название: Re: нужно задание
Отправлено: Makss от Октябрь 09, 2009, 22:28
где-то давно видил такую статью как раз по этому поводу, в ней говорилось такое вот:
- "те кто не знает с чего начать, нету идей по повышению опыта в программировании - отвечайте на форумах тем кто задаёт вопросы, это хороший способ помочь другим ну и для себя - пока будите помогать другим - заодно поможете и себе!"

я тоже с этим согласен)), да не идеальный вариант, но хоть что-то, а вообще задайтесь какой-нить идеей по написанию программы, как я года 3 назад, когда тока начал программировать, та программа у меня затянулась на два года, идея была большая, но так и не дописана)) так и не нашёл до сих пор времени её дописать, хотя опыта сейчас намного больше чем тогда, даже если и возьмусь за тот проект, начну его по любому заново и с нуля, ну и конечно на Qt ;)


Название: Re: нужно задание
Отправлено: Vass от Октябрь 09, 2009, 23:20
Подключитесь к разработке любого Open Source проекта, который придется Вам по душе.


Название: Re: нужно задание
Отправлено: lit-uriy от Октябрь 10, 2009, 08:39
Разработка конкретной программы сильно продвигает в знаниях.

Ну а насчёт ответа на вопросы форумчан, это древняя мудрость, написанная на гербе моего ВТУЗа:
Цитировать
DOCENDO DISCIMUS
Что можно перевести как: "Уча других, мы учимся сами"


Название: Re: нужно задание
Отправлено: baka от Октябрь 10, 2009, 11:14
у меня есть идейка для тебя.

сейчас во многих GUI программках стало модным вместо Label рядом с LineEdit или TextEdit использовать внутреннюю подсказку серым текстом. например так ...

(http://lh3.ggpht.com/_yEL0j1ia2hE/StBBzyw_9eI/AAAAAAAAABc/LCFX_4ZzioA/skypePicture.JPG)

если добавлять такую функциональность в свой проект с помощью наследования от QLineEdit то потребуется придумывать новое имя для класса(MyLineEdit || LineEditWithGrayText || LineEditWithInnerToolTip), также во всех местах заменять QLineEdit на свой, ну и вообще мне это кажется не "айс".

давно хочу написать утилитарный классик например InnerToolTipUtils который бы работа следующим образом:

Код:
QLineEdit * lineEdit = new QLineEdit(this);
InnerToolTipUtils::injectToolTip(lineEdit, tr("Введите текст сообщения здесь"));


т.е. в этом коде к экземпляру класса QLineEdit должна добавляется подсказка серым текстом + поведение какое присуще компонентам с такими подсказками. т.е. при получении фокуса ввода серый текст исчезает, при потере фокуса ввода он или появляется или нет в зависимости от того ввел что либо пользователь или нет.

Плюс было бы хорошо если бы утилитарный классик поддерживал все компоненты Qt4.5 предназначенные для ввода текста.

Самому в ближайшую неделю это делать будет точно некогда, уже месяца 2-3 как руки не доходят.

вобщем если интересно можешь реализовать и выложить исходники я думаю такой классик пригодится не только мне.

вот :)


Название: Re: нужно задание
Отправлено: igor_bogomolov от Октябрь 10, 2009, 15:55
"те кто не знает с чего начать, нету идей по повышению опыта в программировании - отвечайте на форумах тем кто задаёт вопросы, это хороший способ помочь другим ну и для себя - пока будите помогать другим - заодно поможете и себе!"
+10000

По поводу идейки baka , можно подсмотреть здесь (http://www.prog.org.ru/index.php?topic=7795.msg47327)


Название: Re: нужно задание
Отправлено: Igors от Октябрь 10, 2009, 21:40
Скажем например связанные с потоками и процессами, только что это было ещё и интересно, а не примитив совсем. буду благодарна ::)
Классический пример ниток - рисование MandelBrot множества.  Не подходит, в Qt он уже сделан - и (мое личное мнение) сделан неважно, это очень красивый фрактал. Ладно, есть задача которая встречается очень часто, суть одна, меняются только детали. Вот примерное описание:

Есть mainWindow, в нем несколько дочерних окон (сколько ниток (threads) - столько и окон). В каждом из них крутится анимация, ну например, танцует клоун. Пользователь может выбрать фокус - одно из окон. В выбранном окне, к примеру, клоун останавливается и поднимает руку. Все остальные клоуны начинают танцевать лицом к нему.  Пользователь может переназначить число окон/ниток (например из меню).

Все это выглядит просто - но только на первый взгляд, пока Вы не свяжетесь с нитками. Ну и конечно "танцующий клоун" - это только для примера :)


Название: Re: нужно задание
Отправлено: Denjs от Октябрь 12, 2009, 13:16
<...>в нем несколько дочерних окон (сколько ниток (threads) - столько и окон). <...>
не выйдет. в QT с графикой (с отображаемыми объектами) может работать только главный поток. (проверено на собственой шкуре, QT 4.4 точно, думаю и в 4.5 аналогично.
где-то в ассистанте об этом даже говорится.

Мне потребовалось нарисовать картинку и отображать оную, а объект который её рисовал - крутился в дочернем потоке.
Все было относительно почти хорошо, до тез пор, пока не вызывалось show().
Пришлось создавать агента-отображателя, запускать его в основном потоке, и ему сигналом передавать QImage-объект, что бы он создал скроллинг-область и отрисовал там картинку.


Название: Re: нужно задание
Отправлено: Denjs от Октябрь 12, 2009, 13:23
Автору - предлагаю поучаствовать в написании утилиты-конвертора wiki-раметки в html-текст.
Идея в том, что бы создать инструменты для использования wiki-разметки в автодокументации исходного кода.


Название: Re: нужно задание
Отправлено: Igors от Октябрь 12, 2009, 17:58
не выйдет. в QT с графикой (с отображаемыми объектами) может работать только главный поток.
Не выйдет просто поюзать готовый инструментарий (как это часто делается). А руками да аккуратно - все выйдет, о чем говорит Ваш же пример :)


Название: Re: нужно задание
Отправлено: Firefox от Октябрь 27, 2009, 18:39
всем спасибо. я только вот добралась, на работе немного напряг был.

что такое wiki-раметки в принципе не знаю. Клоун танцующий меня поверг сначало в шок, но когда дочитала, более или менее стало(сначала с ужасом думала про прорисовку танцующего клоуна ;D). А вот идея с серой подсказкой это вроде по моим силам. А уж потом только клоуна осиливать))Но времени совсем не много, только на выходных, так что сделаю явно не скоро. но если выйдет выложу.

Всем большое спасибо


Название: Re: нужно задание
Отправлено: SABROG от Октябрь 27, 2009, 20:06
InnerToolTipUtils::injectToolTip(lineEdit, tr("Введите текст сообщения здесь"));

Думаю, если внутрь этого статического метода поместить installEventFilter на QPaintEvent, то всё должно получиться.