Статический размер этикетки

Есть ли способ заставить метку никогда не пытаться изменить размер при изменении текста?

Проблема, которую я пытаюсь решить, состоит в том, что при изменении размера и перерисовке моей системы 500+ виджетов в моем приложении занимает порядка 300-400 мс. Все виджеты находятся в иерархии виджетов отображаемого окна под окном верхнего уровня с различными представлениями, хранящимися в Gtk :: Stack. У меня есть несколько считываний данных, которые должны быть обновлены около 4 Гц.

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

Я пытался переключиться с метки на текстовое представление по этот обсуждение списка рассылки gnome без удачи. Я включил пример того, как все меняется по мере изменения масштаба. Есть ли способ исправить размер левого виджета, который предотвращает полное перерисовывание окон при его изменении размера?

#include <gtkmm.h>

int main( int argc, char* argv[]) {
Glib::RefPtr<Gtk::Application> app =
Gtk::Application::create( argc, argv, "test" );

Gtk::Window window;
Gtk::Box box;
Gtk::TextView left;
Gtk::Label right( "right" );

Glib::RefPtr<Gtk::Adjustment> adjustment =
Gtk::Adjustment::create( 0.0, 0.0, 10.0 );
Gtk::Scale scale( adjustment, Gtk::Orientation::ORIENTATION_VERTICAL );
scale.set_draw_value( false );

window.set_size_request(200, 200);

window.add( box );
box.pack_start( left, true, true );
box.pack_start( right, true, true );
box.pack_start( scale );

adjustment->signal_value_changed().connect( [&]() {
Glib::ustring str;
for( int i = 0; i <= (int)adjustment->get_value(); i++ ) {
str += "X";
}
left.get_buffer()->set_text( str );
} );

window.show_all();

return app->run( window );
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]