LINUX.ORG.RU

[wxwidgets] Странная белая полоска в wxwidgets приложениях.


0

1

Собственно вопрос в заголовке. При использовании wxwidgets-based приложений, в частности wxMaxima и pgAdmin3, в интерфейсе присутствует непонятная белая полоска. Пример см на картинке: http://ompldr.org/vOWFwcw/wxmaximar.jpg http://ompldr.org/vOWFwdA/pgadminr.jpg

В gtk-based и kde-based приложениях ничего подобного не наблюдается.

Система Gentoo amd64. Версия wxGTK 2.8.11.0.

eselect wxwidgets show
Current wxWidgets profile:
  gtk2-unicode-release-2.8

Как избавиться от нее?

Пытался гуглить - выдает чушь вроде руководств по написанию программ на wxwidgets или мути про белые полоски.


Никак. Отрисовку тулбара и статусбара wxWidgets осуществляет сам, не использую какие-то нативные gtk-контролы. Определенные цвета там прописаны прямо в коде. Если интересно, то можешь найти их manager.cpp от aui, найти там метод wxDefaultDockArt::DrawBorder и увидеть как две стороны границы будут отрисованы белым цветом (dc.SetPen(*wxWHITE_PEN)).

Amp ★★★ ()
Ответ на: комментарий от Amp

> Никак. Отрисовку тулбара и статусбара wxWidgets осуществляет сам,

Если интересно, то можешь найти их manager.cpp от aui

src/gtk/tbargtk.cpp

читать до просветления

aho ()

а если по теме - тут два бага, а не один, вообще wxWidgets глючной отстой - так что забей, в wx даже их стандартные примеры глючат и падают

aho ()
Ответ на: комментарий от aho

У нас возникло недопонимание того, что я считаю тулбаром в данном случае. Когда wxToolBar помещается в wxAUIManager, то он становится частью основного тулбара (wxPane в их терминологии), который рисует именно wxAUI. Множество стандартных тулбаров составляют один, которым рулит менеджер. Естественно рендеринг отдельных pane-ов он на себя не берет - виджеты отрисовывают сами себя. Но все остальное он рисует сам - фон под ними, рамки вокруг них, полоску для перетаскивания.

Amp ★★★ ()

Спасибо вам за ответы.

Плохо, что она зашита жестко в код. А аналогов wxmaxima я не знаю: искал на другом тулките, но безрезультатно. pgAdmin еще не так критичен, т.к. пока не очень часто нужен, а вот в максиме раздражает.

Как мне видится, выхода два: либо править сорцы wxgtk, либо искать светлую тему. Но вот manager.cpp в сорцах wxGTK не обнаружен, как и указанная строчка с DrawBorder, а файлик tbargtk.cpp нашелся. Из того, что я смог понять wxGTK все-таки пытается брать цвета из темы GTK, если я не прав, поправьте меня.

Неужели никак нельзя от нее избавиться? Кроме как забить на глючный wx?:)

cchr ()
Ответ на: комментарий от cchr

для первого скрина - вероятно размер тулбара определяется/выставляется неправильно, можно попробовать найти связанный с ним код в wxMaxima и явно вызвать tbar->SetMaxSize( -1, H ); tbar->SetSize( -1, H );, где H - правильное значение,

aho ()
Ответ на: комментарий от cchr

manager.cpp - это в старых исходниках самого wxAUI на сайте фирмы его написавшей. Внутри wxWidgets оно находится в файле dockart.cpp - http://svn.wxwidgets.org/viewvc/wx/wxWidgets/branches/WX_2_8_BRANCH/src/aui/d... Можешь еще написать в их список рассылки, благо люди там есть.

А Cantor пробовал смотреть или просто cli-интерфейс?

Amp ★★★ ()
Ответ на: комментарий от Amp

Спасибо за объяснение. Поковыряюсь сам, если не получится отпишу в список рассылки.

cli-интерфейс это, конечно, та же максима, но хочется гуйни. Я не настолько тру. Про cantor не знал, посмотрю. Еще раз спасибо.

cchr ()
Ответ на: комментарий от Amp

Решилась проблема установкой Cantorа. Помимо максимы умеет работать и с SAGE, что совсем хорошо. Спасибо!

cchr ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.