Python/Fifandraisana amin'ny alalan'ny rafitsary

Fampidirana amin'ny Interfaces Graphiques (GUI) amin'ny Python

hanova

Ny Interface Graphique (GUI) dia manome fomba mora kokoa sy mahafinaritra kokoa amin'ny fifandraisana amin'ny fampiharana. Ny Python, izay fiteny fandaharana maro lafy, dia manana tranomboky maromaro ahafahana mamorona GUI. Ny malaza indrindra amin'izy ireo dia:

  • Tkinter: Ny fifandraisana mahazatra amin'ny Python amin'ny fitaovana GUI Tk.
  • PyQt: Fandaharana Python ho an'ny sehatra fampiharana Qt.
  • Kivy: Tranomboky ho an'ny fampandrosoana rindranasa multitouch.
  • wxPython: Fitaovana GUI mifanandrify amin'ny sehatra maro ho an'ny Python.

Ireo tranomboky tsirairay ireo dia samy manana ny tanjany ary mety ho an'ny karazana fampiharana samihafa. Tkinter dia tsara ho an'ny vao manomboka sy ny fampiharana tsotra, raha ny PyQt kosa dia matanjaka kokoa ary manankarena amin'ny endri-javatra, mety indrindra ho an'ny fampiharana sarotra.

Tkinter

hanova

Fototry ny Tkinter

hanova

Tkinter no tranomboky GUI be mpampiasa indrindra amin'ny Python. Tonga miaraka amin'ny Python izy io ka tsy mila apetraka misaraka.

  • Famoronana Varavarankely Tsotra :
import tkinter as tk

root = tk.Tk()
root.title("Varavarankely Tsotra")
root.geometry("300x200")
root.mainloop()
  • Widgets : Tkinter dia manome widgets maromaro toa ny bokotra, labels, boaty texte, sns.
label = tk.Label(root, text="Salama, Tkinter!")
label.pack()

button = tk.Button(root, text="Tsindrio Aho", command=lambda: print("Bokotra Voatsindry"))
button.pack()
  • Layouts : Tkinter dia manohana mpandrindra layout telo: pack, grid, ary place.
# Mampiasa pack()
label.pack(side="top")

# Mampiasa grid()
label.grid(row=0, column=0)

# Mampiasa place()
label.place(x=50, y=50)

Widgets Tkinter mahazatra

hanova
  • Label : Aseho ny texte na sary.
  • Button : Mampihatra baiko rehefa tsindriana.
  • Entry : Boaty texte tsipika tokana ho an'ny fampidirana mpampiasa.
  • Text : Boaty texte maromaro.
  • Frame : Vata iray ahafahana mitazona widgets hafa.
  • Canvas : Widget ho an'ny fanaovana sary sy sary.

Fikarakarana Tranga

hanova

Tkinter dia ahafahanao mampifandray ny hetsika (toa ny tsindry totozy na fanalahidy) amin'ny asany.

def on_click(event):
    print(f"Voatsindry tao amin'ny {event.x}, {event.y}")

canvas = tk.Canvas(root, width=300, height=200)
canvas.bind("<Button-1>", on_click)
canvas.pack()

Fampidirana Menus

hanova
menu = tk.Menu(root)
root.config(menu=menu)

file_menu = tk.Menu(menu)
menu.add_cascade(label="File", menu=file_menu)
file_menu.add_command(label="Open", command=open_file)
file_menu.add_command(label="Exit", command=root.quit)

Fampidirana amin'ny PyQt

hanova

PyQt dia andiana fifandraisana Python amin'ny fitaovana Qt, izay sehatra matanjaka ho an'ny fampandrosoana GUI mifanandrify amin'ny sehatra maro. PyQt dia manankarena amin'ny endri-javatra mihoatra noho Tkinter ary manohana endri-javatra mandroso toy ny fampidirana tahiry, multimedia, ary maro hafa.

  • Fametrahana PyQt :
pip install PyQt5
  • Famoronana Varavarankely Tsotra :
import sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)

window = QWidget()
window.setWindowTitle("Varavarankely Tsotra")
window.setGeometry(100, 100, 400, 300)
window.show()

sys.exit(app.exec_())

Widgets PyQt mahazatra

hanova
  • QLabel : Aseho ny texte na sary.
  • QPushButton : Bokotra azo tsindriana.
  • QLineEdit : Boaty texte tsipika tokana.
  • QTextEdit : Mpanitsy texte maromaro.
  • QVBoxLayout / QHBoxLayout : Mpandrindra layout ho an'ny endrika mitsangana sy marindrano.

Sinialy sy Tobim-pamokarana

hanova

PyQt dia mampiasa ny rafitra sinialy sy tobim-pamokarana mba hikarakarana tranga. Ny sinialy dia alefa avy amin'ny widgets, ary ny tobim-pamokarana dia asany izay mamaly ireo sinialy ireo.

from PyQt5.QtWidgets import QPushButton

button = QPushButton('Tsindrio Aho')
button.clicked.connect(lambda: print("Bokotra Voatsindry"))

Famoronana Menus

hanova
from PyQt5.QtWidgets import QMainWindow, QAction

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        menubar = self.menuBar()
        file_menu = menubar.addMenu('File')

        open_action = QAction('Open', self)
        file_menu.addAction(open_action)
        open_action.triggered.connect(self.open_file)

    def open_file(self):
        print("File nisokatra")

Famoronana Dialogs

hanova

PyQt dia manome dialog maromaro efa nomanina toy ny QFileDialog, QColorDialog, ary QMessageBox.

from PyQt5.QtWidgets import QFileDialog

file_name, _ = QFileDialog.getOpenFileName(self, "Sokafy Rakitra", "", "Rakitra Rehetra (*)")
if file_name:
    print(f"Rakitra voafidy: {file_name}")

Fampidirana amin'ny Kivy

hanova

Kivy dia tranomboky Python misokatra ho an'ny fampandrosoana rindranasa multitouch. Mety amin'ny fampandrosoana rindranasa miasa amin'ny fitaovana finday sy birao.

  • Fametrahana Kivy :
pip install kivy
  • Famoronana Varavarankely Tsotra :
from kivy.app import App
from kivy.uix.label import Label

class MyApp(App):
    def build(self):
        return Label(text="Salama, Kivy!")

if __name__ == '__main__':
    MyApp().run()

Layouts Kivy

hanova

Kivy dia manome kilasy layout maromaro toy ny BoxLayout, GridLayout, AnchorLayout, sns., ho an'ny fandaminana widgets.

from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button

class MyApp(App):
    def build(self):
        layout = BoxLayout(orientation='vertical')
        layout.add_widget(Button(text="Bokotra 1"))
        layout.add_widget(Button(text="Bokotra 2"))
        return layout

Widgets Kivy

hanova
  • Label : Aseho ny texte.
  • Button : Bokotra azo tsindriana.
  • TextInput : Fampidirana texte tsipika tokana.
  • Slider : Mpikorisa hisafidianana sanda iray.
  • Switch : Switch azo avadika.

Fikarakarana Tranga amin'ny Kivy

hanova

Kivy dia miandraikitra tranga amin'ny alàlan'ny toetra sy fifandraisana. Afaka mampifandray toetra na fomba amin'ny tranga ianao.

button = Button(text="Tsindrio Aho")
button.bind(on_press=lambda x: print("Bokotra voatsindry"))

Fampidirana amin'ny wxPython

hanova

wxPython dia fitaovana GUI mifanandrify amin'ny sehatra maro ho an'ny Python, ahafahanao mamorona fampiharana zanatany ho an'ny Windows, Mac, ary Linux.

  • Fametrahana wxPython :
pip install 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()