GTK3 учебник рисования области, кажется, не существует?
Я изучал GTK3 самостоятельно, и теперь я застрял на Gtk.DrawingArea. Как и в случае большинства виджетов и функций в GTK, по-видимому, отсутствует обновленная документация и руководства по этому вопросу. Для справки о том, что я нашел (надеюсь, это поможет некоторым другим потерянным гуглерам), автоматически созданная документация lazka была моим лучшим ресурсом:
http://lazka.github.io/pgi-docs/Gtk-3.0/classes/index.html
Однако страница области рисования не имеет описанных методов.
http://lazka.github.io/pgi-docs/Gtk-3.0/classes/DrawingArea.html
Это заставляет меня поверить, что у меня есть фундаментальное неправильное понимание GTK и этого виджета, но я не могу найти ничего, объясняющего, как с ним работать! Единственные обучающие программы, которые я мог найти, были они, но они все для более старых версий;
- 1: http://www.pygtk.org/pygtk2tutorial/ch-DrawingArea.html
- 2: http://www.gtk.org/tutorial1.2/gtk_tut-23.html
- 3: http://www.pygtk.org/pygtk2tutorial/sec-DrawingMethods.html
3 - лучший из этих уроков, но я не могу заставить его работать в GTK3, и, честно говоря, он довольно продвинутый. Некоторые вещи также устарели, и замены кажутся довольно загадочными и неясно, как они работают с DrawingArea: http://lazka.github.io/pgi-docs/Gtk-3.0/classes/Widget.html
Официальный учебник не имеет раздела, и он не был значительно обновлен в течение длительного времени:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/objects.html
https://github.com/sebp/PyGObject-Tutorial
Теперь у меня вопрос: может ли кто-нибудь помочь мне понять, как рисовать с помощью Gtk.DrawingArea? Есть ли учебник GTK3 там?
Моя цель на данный момент состоит в том, чтобы автоматически рисовать черные точки в области рисования на основе результатов алгоритма и отображать результаты. Я бы показал свой код, но у меня почти ничего нет.
1 ответ
Вы в основном подключаетесь к сигналу::draw и рисуете в обработчике, используя pycairo. И используйте queue_draw/queue_draw_area(), если вы хотите перерисовать.
См. http://zetcode.com/gfx/pycairo/basicdrawing/ для примеров