Gtkmm - "Gtk::DrawingArea" в "Gtk::ScrolledWindow"?
Я делаю программу с графическим интерфейсом, используя "gtkmm". Я хотел бы нарисовать некоторую графику для виджета "Gtk::DrawingArea", но я хочу, чтобы этот виджет был "изменяемого размера", поэтому, когда я рисую, скажем, линию от "(0, 0)" до "(50, 50)" pixel - область рисования должна быть изменена на квадрат размера"(50, 50)"; и когда я, например, рисую линию от "(0, 0)" до, скажем, "(100, 70)" пикселя - область рисования должна быть изменена до прямоугольника размера "(100, 70)".
И чтобы сделать это - я поместил виджет "Gtk::DrawingArea" в контейнер "Gtk::ScrolledWindow".
Поэтому, когда я помещаю изображение с размером "(100, 100)" в область рисования -> я вызову соответствующую функцию-член "Gtk::DrawingArea::set___size_request(100, 100)", которая установит размер область рисования до (100, 100) пикселей. Так что если "Gtk::ScrolledWindow" "меньше", чем "Gtk::DrawingArea" внутри него, прокручиваемое окно должно измениться на "прокручиваемое" - НО ПРОБЛЕМА ЕСТЬ, ЧТО ЭТО НЕ РАБОТАЕТ!!!!!
Кто-нибудь может мне объяснить, как я могу это сделать?
Благодарю.
2 ответа
Добавьте GTK::Viewport между вашим ScrolledWindow и DrawingArea.
Если кто-то все еще ищет ответ на этот вопрос, есть способ сделать это без Gtk::Viewport, используя эту функцию
Gtk::DrawingArea::set_size_request(width,height);