Я пытаюсь выяснить, есть ли способ использовать GTK (для разработки графического интерфейса) в языке программирования Mojo.
До сих пор мне не удалось найти никакой документации, учебных пособий или примеров, показывающих, как GTK можно интегрировать с Mojo.
Поддерживает ли GTK вообще в Mojo?
Если да, то как его правильно настроить или связать?
Если нет, то существуют ли в настоящее время альтернативные среды графического интерфейса для Mojo?
Любые рекомендации, ссылки или примеры были бы очень полезны.
Я взял код exmaplze с сайта GTK и передал его в ChatGPT для преобразования в код Mojo.
from python import Python
struct ExampleAppMojo:
def run(self):
py = Python.import_module("gi")
py.require_version("Gtk", "4.0")
py.require_version("Adw", "1")
Gtk = py.repository["Gtk"]
Adw = py.repository["Adw"]
Gio = py.repository["Gio"]
Adw.init()
py_code = """
class ExampleWindow(Gtk.ApplicationWindow):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.set_title('Python - PyGObject - GTK')
self.set_default_size(683, 384)
headerbar = Gtk.HeaderBar.new()
self.set_titlebar(headerbar)
menu_button_model = Gio.Menu()
menu_button_model.append('Preferences', 'app.preferences')
menu_button = Gtk.MenuButton.new()
menu_button.set_icon_name('open-menu-symbolic')
menu_button.set_menu_model(menu_button_model)
headerbar.pack_end(menu_button)
class ExampleApplication(Adw.Application):
def __init__(self):
super().__init__(application_id='br.com.justcode.Example')
self.create_action('quit', self.exit_app, ['q'])
self.create_action('preferences', self.on_preferences_action)
def do_activate(self):
win = self.props.active_window
if not win:
win = ExampleWindow(application=self)
win.present()
def do_startup(self):
Gtk.Application.do_startup(self)
def do_shutdown(self):
Gtk.Application.do_shutdown(self)
def on_preferences_action(self, action, param):
print('Action app.preferences was activated.')
def exit_app(self, action, param):
self.quit()
def create_action(self, name, callback, shortcuts=None):
action = Gio.SimpleAction.new(name, None)
action.connect('activate', callback)
self.add_action(action)
if shortcuts:
self.set_accels_for_action(f'app.{name}', shortcuts)
"""
py_app_module = Python.exec(py_code)
app_class = py_app_module["ExampleApplication"]
app_instance = app_class()
app_instance.run(["--"])
Подробнее здесь: https://stackoverflow.com/questions/798 ... tk-in-mojo
Использование GTK в Mojo ⇐ Linux
1767444610
Anonymous
Я пытаюсь выяснить, есть ли способ использовать GTK (для разработки графического интерфейса) в языке программирования Mojo.
До сих пор мне не удалось найти никакой документации, учебных пособий или примеров, показывающих, как GTK можно интегрировать с Mojo.
Поддерживает ли GTK вообще в Mojo?
Если да, то как его правильно настроить или связать?
Если нет, то существуют ли в настоящее время альтернативные среды графического интерфейса для Mojo?
Любые рекомендации, ссылки или примеры были бы очень полезны.
Я взял код exmaplze с сайта GTK и передал его в ChatGPT для преобразования в код Mojo.
from python import Python
struct ExampleAppMojo:
def run(self):
py = Python.import_module("gi")
py.require_version("Gtk", "4.0")
py.require_version("Adw", "1")
Gtk = py.repository["Gtk"]
Adw = py.repository["Adw"]
Gio = py.repository["Gio"]
Adw.init()
py_code = """
class ExampleWindow(Gtk.ApplicationWindow):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.set_title('Python - PyGObject - GTK')
self.set_default_size(683, 384)
headerbar = Gtk.HeaderBar.new()
self.set_titlebar(headerbar)
menu_button_model = Gio.Menu()
menu_button_model.append('Preferences', 'app.preferences')
menu_button = Gtk.MenuButton.new()
menu_button.set_icon_name('open-menu-symbolic')
menu_button.set_menu_model(menu_button_model)
headerbar.pack_end(menu_button)
class ExampleApplication(Adw.Application):
def __init__(self):
super().__init__(application_id='br.com.justcode.Example')
self.create_action('quit', self.exit_app, ['q'])
self.create_action('preferences', self.on_preferences_action)
def do_activate(self):
win = self.props.active_window
if not win:
win = ExampleWindow(application=self)
win.present()
def do_startup(self):
Gtk.Application.do_startup(self)
def do_shutdown(self):
Gtk.Application.do_shutdown(self)
def on_preferences_action(self, action, param):
print('Action app.preferences was activated.')
def exit_app(self, action, param):
self.quit()
def create_action(self, name, callback, shortcuts=None):
action = Gio.SimpleAction.new(name, None)
action.connect('activate', callback)
self.add_action(action)
if shortcuts:
self.set_accels_for_action(f'app.{name}', shortcuts)
"""
py_app_module = Python.exec(py_code)
app_class = py_app_module["ExampleApplication"]
app_instance = app_class()
app_instance.run(["--"])
Подробнее здесь: [url]https://stackoverflow.com/questions/79859677/using-gtk-in-mojo[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия