75 lines
2.0 KiB
Python
75 lines
2.0 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import sys
|
||
|
import gi
|
||
|
|
||
|
gi.require_version("Gtk", "4.0")
|
||
|
gi.require_version('Polkit', '1.0')
|
||
|
|
||
|
from gi.repository import Gtk, Polkit, GObject, Gio
|
||
|
|
||
|
class MainWindow(Gtk.Window):
|
||
|
def __init__(self, title, width, height, application=None):
|
||
|
super().__init__(title=title, application=application)
|
||
|
|
||
|
task_list = Gtk.ListBox()
|
||
|
self.set_child(task_list)
|
||
|
|
||
|
row = Gtk.ListBoxRow()
|
||
|
hbox = Gtk.Box(spacing=6)
|
||
|
button = Gtk.Button.new_with_label("Click Me")
|
||
|
button.connect("clicked", self.on_click_me_clicked)
|
||
|
hbox.append(button)
|
||
|
row.set_child(hbox)
|
||
|
task_list.append(row)
|
||
|
|
||
|
row = Gtk.ListBoxRow()
|
||
|
hbox = Gtk.Box(spacing=6)
|
||
|
button = Gtk.Button.new_with_mnemonic("_Open")
|
||
|
button.connect("clicked", self.on_open_clicked)
|
||
|
hbox.append(button)
|
||
|
row.set_child(hbox)
|
||
|
task_list.append(row)
|
||
|
|
||
|
row = Gtk.ListBoxRow()
|
||
|
hbox = Gtk.Box(spacing=6)
|
||
|
button = Gtk.Button.new_with_mnemonic("_Close")
|
||
|
button.connect("clicked", self.on_close_clicked)
|
||
|
hbox.append(button)
|
||
|
row.set_child(hbox)
|
||
|
task_list.append(row)
|
||
|
|
||
|
def on_click_me_clicked(self, button):
|
||
|
print('"Click me" button was clicked')
|
||
|
|
||
|
def on_open_clicked(self, button):
|
||
|
print('"Open" button was clicked')
|
||
|
|
||
|
def on_close_clicked(self, button):
|
||
|
print("Closing application")
|
||
|
self.close()
|
||
|
|
||
|
|
||
|
class Application(Gtk.Application):
|
||
|
""" Main Aplication class """
|
||
|
|
||
|
def __init__(self):
|
||
|
super().__init__(application_id='com.codigoparallevar.gtk4-organizer',
|
||
|
flags=Gio.ApplicationFlags.FLAGS_NONE)
|
||
|
|
||
|
def do_activate(self):
|
||
|
win = self.props.active_window
|
||
|
if not win:
|
||
|
win = MainWindow("My Gtk4 Application", 800, 800, application=self)
|
||
|
win.present()
|
||
|
|
||
|
|
||
|
def main():
|
||
|
""" Run the main application"""
|
||
|
app = Application()
|
||
|
return app.run(sys.argv)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|