Cześć! W dzisiejszym tutorialu chciałbym pokazać Ci, jak stworzyć prostą aplikację do nauki słówek w języku Python przy użyciu biblioteki PySide/PyQT do obsługi formularza.
Jeśli jeszcze nie masz zainstalowanej biblioteki PySide2 lub PyQT5, możesz to zrobić poprzez pip:
pip install PySide2
lub
pip install pyqt5
Teraz, gdy mamy wszystkie narzędzia, możemy przejść do implementacji naszej aplikacji. Zacznijmy od importowania potrzebnych modułów:
from PySide2.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QLineEdit, QVBoxLayout, QWidget
import sys
Następnie stwórzmy klasę MainWindow, która będzie dziedziczyć po QMainWindow:
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Aplikacja do nauki słówek")
self.resize(400, 200)
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
self.layout = QVBoxLayout()
self.label = QLabel("Podaj słowo do nauki:")
self.layout.addWidget(self.label)
self.input_box = QLineEdit()
self.layout.addWidget(self.input_box)
self.button = QPushButton("Sprawdź")
self.button.clicked.connect(self.check_word)
self.layout.addWidget(self.button)
self.central_widget.setLayout(self.layout)
def check_word(self):
word = self.input_box.text()
# Sprawdzenie poprawności wpisanego słowa i wyświetlenie wyniku
W metodzie check_word
będziemy pobierać wpisane słowo z pola tekstowego i sprawdzać jego poprawność. Możesz dodać tutaj dowolną logikę sprawdzania słów w zależności od potrzeb.
Na koniec musimy stworzyć instancję naszej aplikacji i pokazać ją na ekranie:
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
To już wszystko! Po wykonaniu tego kodu powinna pojawić się aplikacja do nauki słówek, w której możesz wpisywać słowa i sprawdzać ich poprawność.
Mam nadzieję, że ten tutorial okazał się pomocny! Jeśli masz jakieś pytania lub chciałbyś dowiedzieć się więcej na temat obsługi formularzy PySide/PyQT, daj znać w komentarzach. 😉
💬 DISCORD: http://dokodu.dev/discord
💾 KOD: https://github.com/Kacpers/learning-pyside-app
Projekt będzie rozwijany czy został odpuszczony? Ogolnie PySide2 wydaje sie duzo latwiejszy od Tk ale jak zawsze mam problem z tworzeniem kolejnych okien, wiec moze kolejny film pod tym kontem. Kilka mozliwosci przejscia dalej, w gląb oraz powrotu.
Przykladowo: otwieramy program, wybieramy kategorie (np zwierzeta, rodzina, dom), nastepnie kolejny wybor nauka/egzamin (oraz opcje powrotu do wczesniejszego okna). Nauka – slowko obcojezyczne oraz obrazek, opis w jezyku obcym, tlumaczenie. Egzamin w zasadzie jest juz przygotowany z tym ze dorzucilbym tam losowe wyswietlanie slowek pojedynczo (czyli pewnie jeszcze dopisanie opcji wroc i dalej – na wypadek gdy bedziemy cos chcieli zmienic) no i po ostatnim slowku zakoncz i wyswietl wynik. Mozna by sie pokusic jeszcze o rozdzielenie egzaminow dla kazdej kategorii osobno oraz dodanie egzaminu zbiorczego z calosci (z tych 3 kategorii). Głównie zależy mi na tym jak dzielić to wszystko na pliki i jak sie po tym poruszac (layout od kazdej strony tez dzielimy na pliki, wrzucamy w funkcje, importujemy i wczytujemy jak zwykla funkcje? Czy caly layout jest wrzucony w main a tylko funkcje sie przenosi?).
Mógłbyś mi powiedzieć jak mogę taką aplikację uruchomić bezpośrednio na system Windows czy Linux ?
Boom, boom, boom, boom, I want you in my room 😀
Opowiedz coś więcej o automatyzacji zadań(uruchamianie programu co godzinę).
Czy programy okienkowe w Pythonie są powszechnie używane/tworzone? Czy tworzenie GUI w pythonie bardziej powinno się traktować jako ciekawostkę?