You are viewing the community [info]wxwidgets

wxWidgets
developers community
Recent Entries 
Wellcome to wxWidgets developers community
Привет. Проблема в следующем. Есть приложение на базе архитектуры документ-вид. видов у документа два. Так вот событие от кнопки, скажем, последовательно проходит через класс документа, через класс вида (первого) и так далеее. А во второй вид это событие не приходит, как сделать, чтоб событие можно было отловить и во втором виде?
15-12-2011 11:22 - 2.9.3 Release
лилия, походы
Вчера вышел очередной релиз тестовой ветки 2.9. Подробности на wxBlog http://wxwidgets.blogspot.com/2011/12/293-release-in-details.html

Заниматься обзором новшеств не буду, один фиг никто походу не читает. Но если кому-то это реально нужно - пишите в комментах, как появится время, попробую что-нибудь накидать.
08-07-2011 12:39 - wxWidgets 2.9.2
лилия, походы
Анонсирован очередной релиз тестовой ветки wxWidgets. Как обычно, представлено множество улучшений и никакой информации о выходе стабильной версии 3.0. В версию 2.9.2 вошли наработки GSoC2010, добавлено несколько новых классов в базовую и GUI подсистемы, а так же многочисленные изменения в существующих. Можно отметить следующие интересные улучшения:
- в функции wxExecute теперь можно задавать рабочую директорию и переменные окружения для запускаемого процесса;
- в функции BeforeFirst/BeforeLast добавлен аргумент rest возвращающий результат применения AfterFirst/AfterLast, что упрощает разбор строк по односимвольному токену;
- добавлен класс, позволяющий считывать и выводить числа с группированием цифр по тысячам, а так же валидаторы для работы с целыми и дробными числами;
- добавлен класс wxUIActionSimulator для имитации пользовательского ввода;
- в класс wxTextEntry добавлено динамическое автодополнение;
- в wxAUI реализована динамическая ориентация тулбаров, поддержка иконок в заголовках и настройка цветов активных и неактивных табов;
- добавлена поддержка CP-866 (кириллическая DOS кодировка) в wxEncodingConverter.
Полный ченджлог можно посмотреть здесь.

UPD 09.07.2011: как будто в ответ на это сообщение, на wxBlog вчера появилось сообщение от VZ с планом дальнейшего выпуска релизов. Итак, 2.9.3 планируется выпустить в сентябре после интеграции результатов GSoC2011 (ага, что-то такое мы в прошлом году уже читали...), в который, скорее всего не войдёт много чего из планируемого в 3.0, в связи с чем позже выйдет 2.9.4. Выход 3.0 планируется к середине декабря, но, скорее всего случится к середине 2012. Ну и как обычно, требуется помощь в тестировании, особенно на макоси/iOS и GTK3.
02-06-2011 17:00 - Утечка памяти?
Mish
Похоже, кроме меня, тут никого нет :)

Такой глупый вопрос - откуда в таком простом месте утечка памяти:

        for(vector<bmp>::iterator i = dir.begin(); i != dir.end(); ++i) // Список файлов изображений, bmp - моя структура, неважно
        {
            wxImage img(i->file);
            if (img.IsOk())
            {
                i->w = img.GetWidth();
                i->w = img.GetHeight();
            }
        }

Т.е. я просто, имея список, собираю размеры. Не очень-то эффективно (загружать весь рисунок), но как справиться иначе, особенно с разными форматами, не придумал.

Случайно, тестируя, натравил на каталог, где эти картинки лежат тысячами :( Ну, решил попробовать в экстремальных условиях. Но вскоре машина стала откровенно тормозить, а диспетчер задач показывать, что у меня этой программой съедено полтора гига памяти...

С чего бы? Или деструктора по умолчанию недостаточно? Или я что-то не так понимаю, как работает освобождение памяти? (Там не сборка мусора применяется?...)

И как корректно решить мою задачу, чтоб не влезать в такие вот неприятности?
UPD: Компилятор Open Watcom 1.9. Я тут его средствами heapwalk прошелся - новая информация к размышлению: использованная память стоит на месте, а вот свободная (но забранная программой) растет и растет... Т.е. какая-то хитрая дефрагментация, что ли?...

Mish
Это опять я :)
Интересный момент попался. Работаю в DialogBlocks. Мне нужны в окне несколько одинаковых панелей, каковые я хочу сделать экземплярами одного класса, унаследованного от wxPanel. Вроде удалось - указав в первом его как внутреннюю реализацию (пусть генерирует сам...), а в остальных - как внешнюю. Немного пришлось пройтись напильником, чтобы при создании id разные передавать. Все компилируется, но при запуске в отладочном режиме дает предупреждение

assert "ClassTable->Get(m_ClassName) == NULL" failed in void wxClassInfo::Register(void)(): Class "PlotPanel" already in RTTI table - have you used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice?

Только ни IMPLEMENT_DYNAMIC_CLASS() дважды не использован, ни объектник дважды не линкуется - я проверял.

Характерно, что при запуске в Release режиме вроде работает, но при выходе процесс продолжает висеть и жрать процессорное время по полной программе...

Что это может быть? И как с ним побороться?
Mish
Добрый день!

Хочется как можно проще :) вывести что-то типа простенького HTML - например, строку вида

Результат расчета D<sub>i</sub> = 1.5

Ну, т.е. минимально - с индексами.

Static Text, понятно, не подходит. Пробовал wxHtmlWindow - вроде похоже на то, что мне надо, но не хочет русский выводить - сплошные кракозябры... Передавал ему строку типа

<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="windows-1251">
</head>
<body>
<font face="Arial"><center>Вычисление D<sub>0</sub></center></font>
</body>
</html>

все равно кракозябры - не понимает, что это windows-1251...

Как вообще проще всего решить эту проблему?

Заранее спасибо за советы!
Mish
Я тут не так давно спрашивал, как кое-что написать.
Написалось, работает, за что еще раз огромное спасибо - пожалуй, особенно за то, что натолкнули на мысль DialogBlocks попользовать.

Но! Заметил вдруг, что не могу работать без мыши - не работает обход по TAB. Пытался назначать/снимать wxTAB_TRAVERSAL - не помогает!

Угрохал весь сегодняшний день на понимание - не получается... Что я делаю не так? Ведь, похоже, мелочь какая-то, что обиднее всего...

Как корректно заставить обходить (потом будет вопрос - обходить только те контролы, что надо :))


Заранее спасибо за тыканье носом в нужное место...
05-01-2011 16:47 - wxDocument/wxView
Когда писал на MFC, там было все построено на типе Документ-Вид структуры приложений. Подобное есть и в wxWidgets. Наиболее важное отличие в том, что в MFC CView унаследован от CWindow, а в wxWidgets - wxView от wxEvtHandler. Об этом надо помнить. Я сделал так называемое SDI-приложение. Состоит из одного документа и дву связанных с ним видов, разделенных сплиттером. Один вид - это wxNotebook, а другой wxWindow. Итак, привожу сразу исходный текст моего тестового примера и скриншоты программы. Так же есть вариант с использованием wxAUI вместо сплиттера.
P.S. Добавил комментарий в код.
Дальше )
05-01-2011 17:17 - wxWidgets for Java
Посмотрел на jwx, проект заброшен в 2006-м. Есть хороший современный биндинг wxWidgets для Java?
14-12-2010 10:17 - wxAndroid?
работа, кошка
Неделю назад в wxBlog`е появилась заметка от VZ о мечтах на тему порта wx для мобильной платформы Android. Видимо, появление wxQT и активное развитие Android добавило ему изрядную дозу оптимизма на эту тему.
Суть в следующем: несмотря на то, что Android - это изначально целиком и полностью Java, Google довольно быстро был закидан тухлыми помидорами шапками и был вынужден ввести так называемый NDK - Native Development Kit, в рамках которого можно писать на нормальных языках, собирать в обычный нативный бинарник и потом вызывать всё это дело из Java-проги. Изначально NDK был предназначен только для реализации ресурсоёмких вычислений, но позже туда стали постепенно добавлять и прочий функционал, вплоть появления последнем релизе поддержки вывода GUI элементов (с помощью класса NativeActivity). Вадим утверждает, что хоть там и нет приличного API для вывода андроидного GUI, но можно попытаться получить доступ к классам Java API через JNI, либо реализовать хотя бы просто wxUnivesral с отрисовкой через OpenGL.
В общем, ищутся желающие по-сотрудничать над реализацией этой идеи.

ЗЫ: [info]mzet82, не хочешь поучаствовать? =)
This page was loaded Jun 2nd 2012, 11:58 am GMT.