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