|
| Привет. Проблема в следующем. Есть приложение на базе архитектуры документ-вид. видов у документа два. Так вот событие от кнопки, скажем, последовательно проходит через класс документа, через класс вида (первого) и так далеее. А во второй вид это событие не приходит, как сделать, чтоб событие можно было отловить и во втором виде? | |
|
| Анонсирован очередной релиз тестовой ветки 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. | |
|
| Похоже, кроме меня, тут никого нет :)
Такой глупый вопрос - откуда в таком простом месте утечка памяти:
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 прошелся - новая информация к размышлению: использованная память стоит на месте, а вот свободная (но забранная программой) растет и растет... Т.е. какая-то хитрая дефрагментация, что ли?...
| |
|
| Это опять я :) Интересный момент попался. Работаю в 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 режиме вроде работает, но при выходе процесс продолжает висеть и жрать процессорное время по полной программе...
Что это может быть? И как с ним побороться? | |
|
| Добрый день!
Хочется как можно проще :) вывести что-то типа простенького 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...
Как вообще проще всего решить эту проблему?
Заранее спасибо за советы!
| |
|
| Я тут не так давно спрашивал, как кое-что написать. Написалось, работает, за что еще раз огромное спасибо - пожалуй, особенно за то, что натолкнули на мысль DialogBlocks попользовать.
Но! Заметил вдруг, что не могу работать без мыши - не работает обход по TAB. Пытался назначать/снимать wxTAB_TRAVERSAL - не помогает!
Угрохал весь сегодняшний день на понимание - не получается... Что я делаю не так? Ведь, похоже, мелочь какая-то, что обиднее всего...
Как корректно заставить обходить (потом будет вопрос - обходить только те контролы, что надо :))
Заранее спасибо за тыканье носом в нужное место... | |
|
| Когда писал на MFC, там было все построено на типе Документ-Вид структуры приложений. Подобное есть и в wxWidgets. Наиболее важное отличие в том, что в MFC CView унаследован от CWindow, а в wxWidgets - wxView от wxEvtHandler. Об этом надо помнить. Я сделал так называемое SDI-приложение. Состоит из одного документа и дву связанных с ним видов, разделенных сплиттером. Один вид - это wxNotebook, а другой wxWindow. Итак, привожу сразу исходный текст моего тестового примера и скриншоты программы. Так же есть вариант с использованием wxAUI вместо сплиттера. P.S. Добавил комментарий в код. ( Дальше )
| |
|
| Посмотрел на jwx, проект заброшен в 2006-м. Есть хороший современный биндинг wxWidgets для Java? | |
|
| Неделю назад в wxBlog`е появилась заметка от VZ о мечтах на тему порта wx для мобильной платформы Android. Видимо, появление wxQT и активное развитие Android добавило ему изрядную дозу оптимизма на эту тему. Суть в следующем: несмотря на то, что Android - это изначально целиком и полностью Java, Google довольно быстро был закидан тухлыми помидорами шапками и был вынужден ввести так называемый NDK - Native Development Kit, в рамках которого можно писать на нормальных языках, собирать в обычный нативный бинарник и потом вызывать всё это дело из Java-проги. Изначально NDK был предназначен только для реализации ресурсоёмких вычислений, но позже туда стали постепенно добавлять и прочий функционал, вплоть появления последнем релизе поддержки вывода GUI элементов (с помощью класса NativeActivity). Вадим утверждает, что хоть там и нет приличного API для вывода андроидного GUI, но можно попытаться получить доступ к классам Java API через JNI, либо реализовать хотя бы просто wxUnivesral с отрисовкой через OpenGL. В общем, ищутся желающие по-сотрудничать над реализацией этой идеи. ЗЫ: mzet82, не хочешь поучаствовать? =) | |
|
| |