← All posts tagged Qt

magog

мне пришла идея сделать пол линь аналог программы Mars Notebook (http://www.mars-soft.net/rus/notebook.htm). На C++ с использованием Qt. Я готов выслушать аргументированную критику по моей идее и буду рад тем, кто согласится мне помочь.
Сразу скажу, что за комментарии в стиле: "не нужно", или в стиле: "не нужно: используй емакс + что-то + что-то" буду сразу блеклистить. Ваше мнение на счет того, чем мне лучше пользоваться меня не интересует ни грамма.

magog

как обратиться в std::find_if к значению текущей итерации? Поясняю:
QMap >::iterator iter;
iter = std::find_if (Account2Server_.begin (), Account2Server_.end (), boost::bind (&IrcServerManager::ServerExists, this, <здесь нужно значение key текущего итератора>, <тут значение value текущего итератора>, key));

ПРобовал через boost::bind вот так pastebin.com . Ошибка выдается. Пробовал заменить все IrcServer_ptr — это IrcServer* обернутый в shared_ptr — на IrcServer*. Ошибка осталась точно такая же.

magog

\4. Главная цель отпуска — релизнуть Acetamide не достигнута. Я смотрю на себя как на неосилятора. Так я растрачу послднее самоуважение к себе, которого и так практически не осталось :-(

magog

Приятно порадовало, что при работе с кутешными классами, при записи параметров он автоматом выводит на верх нужные. Например:
QString str;
str.spli (' '.<тут жмем Alt+Space> и самые первые в списке автодополнений это QString::KeepEmptyParts и QString::SkipEmptyParts. Приятны даже такие мелочи при разработке

magog

Вот по личкрафтам я могу отслеживать свое развитие в плане программирования на Qt. Начинал с таких простых вещей как реализация full screen. Потом был импорт из FireFox закладок, истории и rss. Потом я написал свой первый плагин, используя наработки @zetoke, Kinotify. Далее был маленький плагин для Poshuku для работы с сервисом хранения закладок (ReadItLater (www.readitlaterlist.com)) и сделал этот плагин так, что не составляет особой сложности добавить свой сервис. Этот плагин я полностью написал сам. Параллельно влез даже немного во внутренности личкрафтов — в XmlSeettingsManager — добавил свой хендлер для QListView. И теперь я пошел еще дальше — теперь пишу плагин для Azoth: Acetamide — это будет irc-клиент. И в планах полноценный плагин для работы с web-блогами а-ля livejournal.com. Очень приятно смотреть на dev.leechcraft.org таски решенные тобой. Повышает ЧСВ =). А вообще — это классно на примере одного проекта видеть как ты развиваешься. Видеть как меньше приходится переписывать после проверки дедфудом. Это офигенно. Да. Вот так. Жаль только, что когда ты повышаешь свой уровень и начинаешь работать над более-менее серьезными вещами, то уже нету времени на исправление мелких багов или запиливание мелких фич. И очень не хватает таких каким был я : еще не погрузившимся в Qt очень глубоко и которому были даже простые таски сложны и интересны. Было бы вообще годно, если бы личкрафты пилило еще парочку человек с разным уровнем. Что бы были высокого уровня — для организации взаимодействия с xorg. Низкого — для мелких задач, типа добавления контекстного меню в Tab++ и среднего — что бы реализоваывать плагины, плагины для плагинов ии плагины для плагинов для плагинов.

magog

Рано или поздно каждый программист понимает, что каждый день он занимается только тем, что применяет уже ранее полученные знания. Он перестает развиваться, а стоит на одном и том же уровне. Никто и никогда в проекте, который он делает на заказ, не будет экспериментировать: у нас с вами нету шанса на ошибку и времени на попытки. А как же тогда изучать что-то новое?
У новичков здесь возникает в чем-то похожая проблема: изучать языки и библиотеки по сухой документации, какой бы она прекрасной ни была, после некоторого этапа уже не так здорово и увлекательно, как при написании собственного проекта, желательно, хоть как-то полезного и используемого в реальной жизни.
(продолжение в комментах)

magog

Жуйк, вопрос такой. Какой драйвер использует MаriaDB? Она совместима с MySQL — говорит ли это о том, что QSQlDatabase ("QMYSQL") будет и к ней подходить и работать будет нормально?

magog

Жуйк, помоги оптимизировать огромный запрос, а то что-то сам не справлюясь select bm.title pl.url, pl.title
from moz_bookmarks bm, moz_places pl
where
bm.parent not in (
select ann.item_id
from moz_items_annos ann, moz_bookmarks bm
where ann.item_id IN (
select item_id
from moz_items_annos
where anno_attribute_id = (
select id
from moz_anno_attributes
where name = 'livemark/feedURI'
)
)
AND ann.anno_attribute_id <> 3
AND ann.anno_attribute_id <> 7
AND bm.id = ann.item_id
)
AND bm.id not in (
select ann.id
from moz_items_annos ann, moz_bookmarks bm
where ann.item_id IN (
select item_id
from moz_items_annos
where anno_attribute_id = (
select id
from moz_anno_attributes
where name = 'livemark/feedURI'
)
)
AND ann.anno_attribute_id <> 3
AND ann.anno_attribute_id <> 7
AND bm.id = ann.item_id
)
AND bm.fk is not null
AND bm.fk not in (
select id
from moz_places
where url not like 'http%' and
url not like 'ftp%' and
url not like 'file%'
)
AND bm.id > 100
AND bm.fk = pl.id

magog

Жуйк, почему QTabWidget *tabwidget = wnd->findChild ("MainTabWidget_"); все время выдает NULL, хотя на форме объект есть. Пробовал даже LeechCraft::TabWidget *tabwidget = wnd->findChild ("MainTabWidget_"); , потому что таб виджет наследован от QTabWidget но толку никакого. Все равно NULL.