Как использовать GTK Constraints/ConstraintTarget с gtkmm?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как использовать GTK Constraints/ConstraintTarget с gtkmm?

Сообщение Anonymous »

В частности, я пытаюсь ограничить ширину метки, не превышающую масштаб (класс, производный от a). Оба помещены в сетку (класс, производный от a).
TLDR: Как передать виджеты как ConstraintTargets в Gtk::Constraint::create?
Насколько я понимаю, я должен создать ограничение с целью в качестве метки, источником в качестве масштаба и соответствующим атрибутом и отношением. Затем я бы добавил ограничение в ConstraintLayout и установил этот макет в качестве менеджера макета моей сетки с кодом, который выглядит следующим образом:

Код: Выделить всё

Gtk::Label label("Example");
Gtk::Scale scale(Gtk::Orientation::HORIZONTAL);
Gtk::Grid grid;

int size = 300;
scale.set_size_request(size, -1);

grid.attach(label, 0, 0);
grid.attach(scale, 0, 1);

auto constraint = Gtk::Constraint::create(
// ?? label, somehow
Gtk::Constraint::Attribute::WIDTH,
Gtk::Constraint::Relation::LE,
// ?? scale, somehow
Gtk::Constraint::Attribute::WIDTH,
1.0,
0.0
);
auto layout = Gtk::ConstraintLayout::create();
layout->add_constraint(constraint);
grid.set_layout_manager(layout);
Если все это было правильно, я очень озадачен тем, как на самом деле передать мою метку и масштаб в Constraint::create.
Я знаю, что он ожидает, что аргументами цели и источника будут Glib::RefPtr&, но я запутался. Как мне передать свои виджеты как ConstraintTargets для использования здесь?

Подробнее здесь: https://stackoverflow.com/questions/798 ... with-gtkmm
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»