Prosty edytor tekstowy
14 July 2008
Comments
Tworzymy prosty edytor tekstowy korzystając z QFileDialog, QMessageBox i kilku standardowych widgetów. Tworzmy okno z widgetami:

Następnie tworzymy trzy funkcje: otworz, zapisz i zapisz_jako. Ustaw sygnały z pozostałych przycisków na Formularz przypisując w SLOTach odpowiednie funkcje. U mnie dla domyślnych nazw pushButtonów:

void Form1::otworz()
{
self.a = QFileDialog(self)
file = QFileDialog.getOpenFileName()
# ustawiamy tekst etykiety z "Brak Pliku" na nazwę pliku
self.textLabel1.setText(file)
# file nie jest napisem lecz Qczymś ala napis, więc trzeba to przekonwertować
# wczytujemy zawartość pliku
plik = open(str(file))
try:
tekst = plik.read()
finally:
plik.close()
#ustawiamy tekst TextEdit na ten z pliku
self.textEdit1.setText(tekst)
}
void Form1::zapisz()
{
#jeżeli plik otwarty to można zapisać
if (str(self.textLabel1.text()) != '<p align="center">Brak Pliku</p>'):
plik = open(str(self.textLabel1.text()), 'w')
plik.write(str(self.textEdit1.text()))
plik.close()
#tworzymy nowy QMessageBox, podajemy tekst i wyświetlamy
self.a = QMessageBox(self)
self.a.setText("Zapisano zmiany")
self.a.show()
}
void Form1::zapisz_jako()
{
# to ma jedną wadę - nie przyjmuje nazw nieistniejących plików...
if (str(self.textLabel1.text()) != '<p align="center">Brak Pliku</p>'):
self.a = QFileDialog(self)
file = QFileDialog.getOpenFileName()
if (str(file) != ""):
plik = open(str(file), 'w')
plik.write(str(self.textEdit1.text()))
plik.close()
self.b = QMessageBox(self)
self.b.setText("Zapisano zmiany")
self.b.show()
}

RkBlog
Comment article