Torolàlana GTK3: Endri-javatra Fototra sy Mandroso

hanova

GTK3 dia tranomboky mifanandrify amin'ny sehatra maro ho an'ny famoronana Graphical User Interface (GUI) amin'ny alalan'ny fiteny fandaharana toa ny C ary azo ampiasaina miaraka amin'ny Python amin'ny alalan'ny PyGObject. Ity cheatsheet ity dia manome topi-maso fohy momba ny endri-javatra fototra sy mandroso amin'ny GTK3.

Fomba fototra amin'ny GTK3

hanova
  • Famoronana Varavarankely Tsotra :
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk

class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="Varavarankely Tsotra")
        self.set_default_size(300, 200)

window = MyWindow()
window.connect("destroy", Gtk.main_quit)
window.show_all()
Gtk.main()
  • Widget Mahazatra

GTK3 dia manohana widgets maro ho an'ny fifandraisana amin'ny mpampiasa.

Bokotra
button = Gtk.Button(label="Tsindrio Aho")
button.connect("clicked", self.on_button_clicked)
self.add(button)
Label
label = Gtk.Label(label="Salama, GTK3!")
self.add(label)
Boaty Texte
textbox = Gtk.Entry()
textbox.set_text("Soraty eto")
self.add(textbox)
  • Fikarakarana Tranga (Event Handling)

Ny tranga (events) amin'ny GTK3 dia voakarakara amin'ny alalan'ny famoronana fomba (methods) izay mifandray amin'ny widgets.

def on_button_clicked(self, widget):
    print("Bokotra voatsindry")
  • Layouts (Fandaminana ny Widgets)

GTK3 dia manohana ny fandaminana widgets amin'ny alalan'ny containers, toy ny Box sy Grid.

Box
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)
box.pack_start(button, True, True, 0)
box.pack_start(textbox, True, True, 0)
self.add(box)
Grid
grid = Gtk.Grid()
grid.attach(button1, 0, 0, 1, 1)
grid.attach(button2, 1, 0, 1, 1)
grid.attach(button3, 0, 1, 2, 1)
self.add(grid)

Endri-javatra Mandroso amin'ny GTK3

hanova
  • Fampiasana ny Menubar sy Toolbar

GTK3 dia mamela ny famoronana menubar sy toolbar mba hampidirana baiko sy fitaovana mora ampiasaina.

Menubar
menubar = Gtk.MenuBar()
filemenu = Gtk.Menu()
fileitem = Gtk.MenuItem(label="File")
fileitem.set_submenu(filemenu)
menubar.append(fileitem)

new_item = Gtk.MenuItem(label="New")
new_item.connect("activate", self.on_new)
filemenu.append(new_item)

self.add(menubar)
Toolbar
toolbar = Gtk.Toolbar()
new_tool = Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW)
new_tool.connect("clicked", self.on_new)
toolbar.insert(new_tool, 0)
self.add(toolbar)
  • Dialogs (Varavarankely Mifampiresaka)

GTK3 dia manome fomba mora ampiasaina amin'ny famoronana dialogs toy ny FileChooserDialog, MessageDialog, ary ColorChooserDialog.

FileChooserDialog
dialog = Gtk.FileChooserDialog(title="Safidio ny rakitra", parent=self, action=Gtk.FileChooserAction.OPEN)
dialog.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)
response = dialog.run()
if response == Gtk.ResponseType.OK:
    print("Rakitra voafidy: ", dialog.get_filename())
dialog.destroy()
MessageDialog
dialog = Gtk.MessageDialog(parent=self, flags=0, message_type=Gtk.MessageType.INFO, buttons=Gtk.ButtonsType.OK, text="Tonga soa eto amin'ny GTK3!")
dialog.run()
dialog.destroy()
  • Custom Widgets (Widgets namboarina)

Afaka mamorona widgets manokana ianao amin'ny alalan'ny famoronana kilasy iray manaraka avy amin'ny kilasy Gtk.Widget na Gtk.Container.

class MyCustomWidget(Gtk.Box):
    def __init__(self):
        super().__init__(orientation=Gtk.Orientation.HORIZONTAL, spacing=10)
        label = Gtk.Label(label="Widget Namorona")
        self.pack_start(label, True, True, 0)
  • Asehoy ny Canvas (Fanoratana ny Canvas)

GTK3 dia manohana ny fanaovana sary amin'ny alalan'ny Gtk.DrawingArea, izay ahafahanao mandravaka sy mamorona sary mahafinaritra amin'ny pejy.

class MyCanvas(Gtk.DrawingArea):
    def __init__(self):
        super().__init__()
        self.connect("draw", self.on_draw)
    
    def on_draw(self, widget, cr):
        cr.set_source_rgb(1, 1, 0)
        cr.arc(50, 50, 25, 0, 2 * 3.14)
        cr.fill()
  • Fampifandraisana amin'ny tahiry (Database)

GTK3 dia azo ampiasaina miaraka amin'ny MySQL, SQLite, na tahiry hafa amin'ny alalan'ny Python, ary aseho ny valiny ao amin'ny GUI.

import sqlite3

def ConnectToDatabase():
    conn = sqlite3.connect("database.db")
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM Users")
    results = cursor.fetchall()
    for row in results:
        print(row)
    conn.close()

Fehiny

hanova

GTK3 dia fitaovana mahery vaika sy mora ampiasaina ho an'ny famoronana rindrambaiko miaraka amin'ny Graphical User Interface (GUI). Amin'ny alalan'ny fahalalana ireo endri-javatra fototra sy mandroso ireo, dia afaka mamorona fampiharana matotra sy manintona ianao amin'ny alalan'ny GTK3.