Aller au contenu

Python/wxPython

Avy amin'i Wikibooks

Torolàlana wxPython: Endri-javatra Fototra sy Mandroso

[hanova]

wxPython dia tranomboky mifanandrify amin'ny sehatra maro ho an'ny Python, izay mamela anao hamorona rindrambaiko miaraka amin'ny Graphical User Interface (GUI). Ity cheatsheet ity dia manome topi-maso fohy momba ny endri-javatra fototra sy mandroso amin'ny wxPython.

Fomba fototra amin'ny wxPython

[hanova]
  • Famoronana Varavarankely Tsotra :
import wx

app = wx.App(False)
frame = wx.Frame(None, wx.ID_ANY, "Varavarankely Tsotra", size=(300, 200))
frame.Show(True)
app.MainLoop()
  • Widget Mahazatra

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

Bokotra
button = wx.Button(panel, label="Tsindrio Aho")
button.Bind(wx.EVT_BUTTON, self.OnButtonClick)
Label
label = wx.StaticText(panel, label="Salama, wxPython!")
Boaty Texte
textbox = wx.TextCtrl(panel, style=wx.TE_MULTILINE)
  • Fikarakarana Tranga (Event Handling)

Ny tranga (events) amin'ny wxPython dia voakarakara amin'ny alalan'ny fanoratana ny fomba sy fampifandraisana azy amin'ny tranga iray.

def OnButtonClick(self, event):
    wx.MessageBox("Bokotra Voatsindry", "Information", wx.OK | wx.ICON_INFORMATION)
  • Layouts (Fandaminana ny Widgets)

wxPython dia manohana ny fandaminana widgets amin'ny alalan'ny Sizers, toy ny BoxSizer sy GridSizer.

BoxSizer
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(button, 0, wx.ALL, 5)
sizer.Add(textbox, 1, wx.EXPAND | wx.ALL, 5)
panel.SetSizer(sizer)
GridSizer
sizer = wx.GridSizer(2, 2, 5, 5)
sizer.AddMany([(button1), (button2), (button3), (button4)])
panel.SetSizer(sizer)

Endri-javatra Mandroso amin'ny wxPython

[hanova]
  • Fampiasana ny Menubar sy Toolbar

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

Menubar
menuBar = wx.MenuBar()
fileMenu = wx.Menu()
menuBar.Append(fileMenu, "&File")
newItem = fileMenu.Append(wx.ID_NEW, "&New")
self.Bind(wx.EVT_MENU, self.OnNew, newItem)
self.SetMenuBar(menuBar)
Toolbar
toolbar = self.CreateToolBar()
tool = toolbar.AddTool(wx.ID_ANY, "New", wx.Bitmap("new.png"))
self.Bind(wx.EVT_TOOL, self.OnNew, tool)
toolbar.Realize()
  • Dialogs (Varavarankely Mifampiresaka)

wxPython dia manome fomba mora ampiasaina amin'ny famoronana dialogs toy ny FileDialog, MessageBox, ary ColorDialog.

FileDialog
dialog = wx.FileDialog(self, "Safidio ny rakitra", wildcard="*.*", style=wx.FD_OPEN)
if dialog.ShowModal() == wx.ID_OK:
    file_path = dialog.GetPath()
dialog.Destroy()
MessageBox
wx.MessageBox("Tonga soa eto amin'ny wxPython!", "Information", wx.OK | wx.ICON_INFORMATION)
  • Custom Widgets (Widgets namboarina)

Afaka mamorona widgets manokana ianao amin'ny alalan'ny famoronana kilasy iray manaraka avy amin'ny kilasy wxPython iray efa misy.

class MyCustomWidget(wx.Panel):
    def __init__(self, parent):
        super().__init__(parent)
        self.label = wx.StaticText(self, label="Widget Namorona")
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self.label, 0, wx.ALL, 5)
        self.SetSizer(sizer)
  • Asehoy ny Canvas (Fanoratana ny Canvas)

wxPython dia manohana ny fanaovana sary amin'ny alalan'ny wx.Canvas, izay ahafahanao mandravaka sy mamorona sary mahafinaritra amin'ny pejy.

class MyCanvas(wx.Panel):
    def __init__(self, parent):
        super().__init__(parent)
        self.Bind(wx.EVT_PAINT, self.OnPaint)
    
    def OnPaint(self, event):
        dc = wx.PaintDC(self)
        dc.SetBrush(wx.Brush("yellow"))
        dc.DrawCircle(50, 50, 25)
  • Fampifandraisana amin'ny tahiry (Database)

wxPython 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]

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