Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354

Портирование на GTK3

24.09.2019, 11:48. Показов 1877. Ответов 16
Метки gtk, gtk3 (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Пытаюсь выполнить портирование небольшого приложения с GTK2 на GTK3.
В коде есть такие строки:
Python
1
2
item.set_expand(Gtk.EXPAND)
self.buttonHideTimer.unset_flags(Gtk.CAN_FOCUS)
Не могу найти в документации к GTK3 как правильно описать теперь эти флаги.
Может кто подскажет ?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.09.2019, 11:48
Ответы с готовыми решениями:

Gtk3 на Mac OS 12 M1
Доброго времени суток. Разрабатываю оконное приложение с использованием GTKmm 3. Разработку веду на Mac OS. Код компилиуется но при...

Ошибка компиляции gtk3
Раньше на убунте писал на gtk приложения и они компилировались спокойно. Решил на Арче поставить libgtk-3.0 libgtk-3-dev и теперь ничё не...

Какое событие отлавливать? GTK3
Что нужно выловить, чтобы получить координаты мыши когда ЛКМ нажата и мыша перемещается над виджетом? Как это делать? Добавлено через...

16
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
24.09.2019, 11:56
Лучший ответ Сообщение было отмечено berkut_174 как решение

Решение

Цитата Сообщение от berkut_174 Посмотреть сообщение
Может кто подскажет ?
гугл сказал начать вот с этого
drawing_area.set_property('can-focus', True)
а потом внимательно вот тут
https://developer.gnome.org/gt... -to-3.html
1
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
24.09.2019, 15:11  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
drawing_area.set_property('can-focus', True)
Что интересно, по этой фразе нахожу тему, где об этом сказано, а если пишу Gtk.CAN_FOCUS, то уже 5 страниц в гугле пролистал и данной темы с решением нет. Спасибо.

Цитата Сообщение от Welemir1 Посмотреть сообщение
https://developer.gnome.org/gtk3/stable/gtk-migrating-2-to-3.html
Поглядываю туда, но пока тяжеловато...

Столкнулся ещё с такой ошибкой:
Python
1
2
self.cfg.bg_color = self.window.get_style().copy().bg[Gtk.StateFlags.NORMAL]
IndexError: list index out of range
Как-то можно посмотреть содержимое self.window.get_style() ?
Не могу понять, почему такое сообщение выводится.
В старом варианте (GTK) такой код работал.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
24.09.2019, 15:39
Цитата Сообщение от berkut_174 Посмотреть сообщение
Как-то можно посмотреть содержимое self.window.get_style() ?
конечно - вывести например, а лучше дебаггером бряк поставить и поглядеть -что там лежит
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,241
24.09.2019, 15:40
berkut_174, отладчик вам поможет
1
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
24.09.2019, 17:16  [ТС]
Я использую VS Code.
В консоль отладки только это выходит:
Code
1
2
3
CRITICAL **: 19:13:22.124: Stack overflow protection. Can't copy array element into GIArgument.
DeprecationWarning: Gtk.Widget.get_style is deprecated
DeprecationWarning: Gtk.Style.copy is deprecated
print выводит:
Code
1
<Gtk.Style object at 0x7f9838aad3f0 (GtkStyle at 0xe7c0e0)>
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,241
24.09.2019, 17:18
berkut_174, а вы точку останова поставили?
0
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
24.09.2019, 17:30  [ТС]
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
berkut_174, а вы точку останова поставили?
Да, на проблемной строке.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
24.09.2019, 17:36
Цитата Сообщение от berkut_174 Посмотреть сообщение
print выводит:
Код
<Gtk.Style object at 0x7f9838aad3f0 (GtkStyle at 0xe7c0e0)>
ну выведи его атрибут bg, не пустой ли это список?
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,241
24.09.2019, 17:42
berkut_174, на предыдущей.
0
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
24.09.2019, 17:44  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
ну выведи его атрибут bg, не пустой ли это список?
Прошу прощения за тупёжку с моей стороны...
Ну да, он пустой, а вот в background есть индексы 5 штук.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
24.09.2019, 17:45
berkut_174, ну вот и решили, не благодари) но спасибо и лучший ответ не забудь
0
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
24.09.2019, 19:29  [ТС]
Но там cairo.SolidPattern, а мне нужен Gdk.Color.

Добавлено через 1 час 33 минуты
В прочем ладно, с этим bg пока не горит.
Вот такая строка ещё вызывает у меня вопросы:
Python
1
2
if not cfg.cursor_wait_status and widget.window:
AttributeError: 'Window' object has no attribute 'window'
Не могу понять, что она проверяет.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,693
Записей в блоге: 29
24.09.2019, 19:40
Цитата Сообщение от berkut_174 Посмотреть сообщение
Не могу понять, что она проверяет.
если курсор не в статусе ожидания(? ) и окно виджета существует то...
1
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
25.09.2019, 07:06  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
если курсор не в статусе ожидания(? ) и окно виджета существует то...
Да, пожалуй, заменил пока так:
Python
1
if not cfg.cursor_wait_status and widget.get_window():
0
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
25.09.2019, 16:29  [ТС]
Чего-то я не понял https://developer.gnome.org/gt... t-tooltips

То есть у меня было:
Python
1
self.toolbarMain.set_tooltips(True)
Ругань соответствующая:
Code
1
AttributeError: 'Toolbar' object has no attribute 'set_tooltips'
Как я должен исправить, вот так не хочет:
Python
1
self.toolbarMain.set_property("enable_tooltips", True)
В чём ошибка ?

PS. С другой стороны, такого свойства действительно нет у Toolbar https://developer.gnome.org/gt... olbar.html
0
3 / 3 / 11
Регистрация: 17.01.2013
Сообщений: 354
27.09.2019, 21:08  [ТС]
Кто подскажет как портировать строку:
Python
1
2
self.cfg.messageList = Gtk.ListStore(str)
self.cfg.messageBox = gtk.ComboBoxEntry(self.cfg.messageList, column=0)
Я пробую так, но не выходит:
Python
1
2
3
self.cfg.messageList = Gtk.ListStore(str)
self.cfg.messageBox = Gtk.ComboBox.new_with_model_and_entry(
            self.cfg.messageList)
Список в ComboBox появляется и количество позиций верное, но текста в них нет никакого - NULL.
ЧЯДНТ ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.09.2019, 21:08
Помогаю со студенческими работами здесь

Разработка с использованием glib GTK3
Подскажите пожалуйста есть ли какие нибудь более-менее свежие книжки по glib и GTK3 для начинающих? Или ссылки на ресурсы с уроками,...

Создание текстового поля в gtk3
Добрый вечер, возникли трудности при создании текстового поля в gtk. GtkWidget * url; url=gtk_entry_new(); ...

Изменение визуальной темы GTK3
Добрый день. Не знаю, по каким словам гуглить, поэтому обращаюсь за помощью. Предисловие. В общем, решил я поставить kdiff3 и meld, во...

Ошибка (возможно памяти) в Python3 GTK3+
Привет, у меня есть небольшая проблемка. А именно ошибки GTK аварийный останов(стек памяти сброшен на диск) и что-то о неверной вставки в...

Как создать собственную тему GTK3?
Приветствую, форумчане! Те кто в курсе будьте так добры: дайте, пожалуйста, какую-то более-менее вменяемую инструкцию как можно полностью...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru