Oбщее

wxWidgets vs QT статистика навевает на размышления

February 16th, 2008 Begemot

Просматриваю форум по с++ на RSDN. Замечаю что вопрос про QT намного больше чем по wxWidgets. Интересно… решил проверить поиском по форуму RSDN

По запросу ‘wxwidgets’ найдено документов: 693
По запросу ‘wxwindows’ найдено документов: 299

В сумме меньше тысячи. А вот QT

По запросу ‘qt’ найдено документов: 4349

В 4.5 раза больше. С чего бы это? И это при бесплатности wxWidgets и более чем платности QT. Ясно что кто-то опен соурс пишет, кто-то на работе на купленной работает, а кто-то и ворованной пользуется – но в 4.5 раза больше… не нравится мне это.


wxSQLite GUI Browser

February 3rd, 2008 Begemot

Сегодня нашел более чем приятный SQLite Browser. Даже более чем просто броузер полноценный manadgment tool. Фрии с исходниками (GPL) написанный на wxWidgets. Теперь даже и не знаю писать ли свой:)

Рекомендую: http://cfred.free.fr/wxsqliteplus.php.


Юмористы

January 14th, 2008 Begemot

Авторы не лишены чуства юмора, из доков

    wxString theAnswer;
    GetMeaningOfLifeAsString(wxStringBuffer(theAnswer, 1024));
    if ( theAnswer != "42" )
    {
        wxLogError("Something is very wrong!");
    }

хотя было бы наверное лучше если бы они wxCharBuffer в документации описали.


Почти герой:)

January 13th, 2008 Begemot

Такое впечетление что wxRichTreeCtrl тестили спустя рукава, сегодня открыл 6 тикетов относительно него, и только один из них это предложениее имхо явной функциональности, остальныне –  баги. Выходной прошел не зря, теперь можно и в сауну:)

Posted in Oбщее | Tags: ,
Comments Off on Почти герой:)


wxRichTextCtrl не фонтан

January 12th, 2008 Begemot

Как я и боялся wxRichTextCtrl не всегда адекватен. За час тестов я нашел кучу “странного поведения”, и раза 4 он херил мне стиль всего документа. В результате несложных манипуляций- то весь текст стает жирным, то центрированным, самый тяжелый случай – при ресайзе окна весь текст превратился в сплошной список, каждый пункт которого начинался с ‘1’ и всеб было bold & italik. Ну и как я могу дать подобное юзерам? Ответил Julian Smart’y на его предложение юзать wxRichTextCtrl, описанием багов и методикой воспроизведения одной из ситуаций, посмотрим что ответит – как никак он автор.

Уточню, речь шла о использовании wxRichTextCtrl  как РТФ редактора. Мысль о том, что можно попробывать эмулировать им простой эдит с расширенной функциональностью все еще не покидает меня – буду пробывать.

Posted in Oбщее | Tags: , ,
Comments Off on wxRichTextCtrl не фонтан


wxLaunchDefaultBrowser and FireFox

December 22nd, 2007 Begemot

Обнаружил что wxLaunchDefaultBrowser работает криво. У меня FF стоит по умолчанию, если броузер уже запущен руками – то wxLaunchDefaultBrowser работает нормально. Но если FF закрыт, то облом – запускает фаерфокс, открывает новую вкладку – но пустую. Второй выбор этого же пунта меню для перехода на домашнюю страницу – опять открывает пустую вкладку и так пока не закроешь все вкладки и не откроешь броузер руками. Причем если в такую “открытую” вкладку руками вбить адрес – все равно ФФ не работает. жопа. Если дождусь письмо от sourceforge.net для активации аккаунта – запощю баг в трекер.

Updated: Как всегда если вам кажется что компьютер или система глючит – проверяйте себя. Оказалось проблема в моей системе – Firewall блокировал, дебаг версию – в результате чего был такой баг.

Posted in Oбщее
Comments Off on wxLaunchDefaultBrowser and FireFox


Shit happens

December 21st, 2007 Begemot

Эхх, клонирую свою MFC программу под wxWidgets. Необходимо находясь в эдит контроле иметь возможность навигации по соседнему дереву, там я  просто просто в PreTranslateMessage в эдите отлавливал alt+стрелки\Page Down\UP менял обьект у события и форвадил дереву для обработки. На wx сделать не получалось, спросил в wx-users at lists.wxwidgets.org, в ответ от Vadim Zeitlin  получил

There is no way to make this work with native controls (such as wxTreeCtrl
under MSW): they have no idea about wx events so sending them to those
controls will obviously never do anything. We thought a few times in the
past to provide a way to generate a native keyboard message from e.g.
wxKeyEvent but this has never been done. If you feel like trying to do it,
it would certainly be welcome. Otherwise you will have to handle the keys
yourself manually (i.e. checks for arrow up and select the appropriate item
and so on).

Настроение с утра испортил:)

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

Будем копать дальше, гда наша не пропадала:)

Posted in Oбщее | Tags: ,
Comments Off on Shit happens


wxWindowDestroyEvent

December 20th, 2007 Begemot

В обработчике wxWindowDestroyEvent окно уже какое-то полудохлое, такое ощушение что еще не совсем умерло, но уже попахивает. При IsMaximized() получаем AV. Так что MFCшники бросайте привычку делать что-то в OnDestroy, дружно юзаем деструктор.

Posted in Oбщее | Tags: ,
Comments Off on wxWindowDestroyEvent


wxWindowCreateEvent много раз

December 19th, 2007 Begemot

This event is sent just after the actual window associated with a wxWindow object has been created. Since it is derived from wxCommandEvent, the event propagates up the window hierarchy.

Обратите внимание на выделенное. Если хотите использовать этот событие для дополнительной инициализации диалога, по аналогии с OnInitDialog в MFC, то учтите: обработчик OnCreate для wxWindowCreateEvent вызывается много раз, первый раз после инициализации фрейма, а потом после создания каждого контрола. Так что или выберите другое место для дополнительной инициализации или предохраняйтесь:

if(event.GetEventObject()==this)

{

….

}

Posted in Oбщее | Tags: ,
Comments Off on wxWindowCreateEvent много раз


wxIconizeEvent и wxMaximizeEvent

December 19th, 2007 Begemot

Не радует меня система сообщений в wxWidgets, приложение получает wxIconizeEvent и wxMaximizeEvent уже постфактум. Ни запретить действие, ни выполнить свой код перед тем как окно будет свернуто\развернуто – нельзя.

Не смотря на то что в документации написано
An event being sent when the frame is maximized or restored.

и

An event being sent when the frame is iconized (minimized) or restored.

Приходит только после максимизации\минимизации. При возвращении к нормальным размерам – неприходит. Под маком вроде вообще не должно приходить, так что пытатся его использовать наверное не стоит – хоть мне приходится.

Posted in Oбщее | Tags: , ,
Comments Off on wxIconizeEvent и wxMaximizeEvent