Python/GTK3
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.