Использование GTK в MojoLinux

Ответить
Anonymous
 Использование GTK в Mojo

Сообщение 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(["--"])



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

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

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

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

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

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