[ Pobierz całość w formacie PDF ]
private:
QString dane;
};
// parserek.cpp
#include "parserek.h"
bool sParser::startDocument()
{
return TRUE;
}
bool sParser::startElement( const QString&, const QString&,
const QString& ,
const QXmlAttributes& )
{
return TRUE;
}
bool sParser::endElement( const QString&, const QString&, const QString& )
{
return TRUE;
}
bool sParser::characters( const QString & ch )
{
dane += ch ;
return TRUE;
}
QString sParser::daneImie()
{
return dane;
}
// form1.ui.h
Kopiowanie kursu w caøoÅ›ci lub w kawaøku dozwolone pod warunkiem umieszczenia autorstwa
kursu (Tomasz Pielech) i podania adresu email autora (moux@post.pl)
#include "parserek.h"
void Form1::init()
{
sParser handler;
QFile xmlFile( "baza.xml" );
QXmlInputSource source( &xmlFile );
QXmlSimpleReader reader;
reader.setContentHandler( &handler );
reader.parse( source );
textEdit1->setText( handler.daneImie() );
}
OK, rzucamy teraz okiem na wynik tego co taki program nam poczyniø z pliczkiem:
Tøumaczenie tego programu nie jest chyba konieczne. Zaprezentowany tutaj kod to kolejna
pozycja w naszym katalogu "Light Motif". Zaprezentowana klasa sParser nie będzie się wiele
różniøa w programach. Jedyne modyfikacje bÄ™dziemy dokonywać na tych elementach wyjÅ›ciowych,
zamiast QString dany cos innego. Pewnie też bÄ™dzie trzeba zmienić obsøugÄ™ startElement, tak aby
po znalezieniu elementu (3 QString) "xxx" komputer wykonaø z nim jakÄ… operacjÄ™ w stylu np.
wczytaø dzieci tylko tego elementu.
yródøa programów w pobieralni (maøy tips, aby program zaczytaø plik baza.xml przy pomocy
ściezki podanej w sposób reletywny, powiniśmy odpalać program z konsoli lub zmienić ścieżkę na
bezwględną).
Kopiowanie kursu w caøoÅ›ci lub w kawaøku dozwolone pod warunkiem umieszczenia autorstwa
kursu (Tomasz Pielech) i podania adresu email autora (moux@post.pl)
Programowanie w Qt –ð kurs 74
Programowanie w Pythonie z użyciem Qt
Dlaczego o tym piszę ?? Jeśli będziecie kiedyś chcieli używać komputera do jakichś
niestandardowych rzeczy np. w genetyce to bardzo prawdopodobne, że niezbędna wam będzie
znajomość jÄ™zyka Python. Na temat zalet tego jÄ™zyka nie bÄ™dÄ™ siÄ™ lepiej wypowiadaø, sÄ… w tej
materii lepsi specjaliÅ›ci ode mnie. Mój osobisty zachwyt wzbudziøo w tym jÄ™zyku podobieÅ„stwo do
php, gdzie nie musimy się zbytnio martwić o typy danych i ewentualne konwersje. Ponadto python
ma chyba najwiÄ™cej bibliotek, søużących do konkretnych zastosowaÅ„. Dla samego przykøadu można
wskazać zastosowanie Pythona w Gimpie, Qt i zastosowaniach naukowych. Nas jednak w tym
tekście będzie interesować tylko Qt w Pythonie.
Chciaøbym aby ten tekst byø swoista zachÄ™tÄ… do Pythona, dla osób które jeszcze nie miaøy
okazji siÄ™ w to pobawić. Przy pisaniu bazowaøem na tekÅ›cie Alexa Fedosova: "Tutorial: Creating
GUI Application in Python with Qt", jakkolwiek nie jest to tøumaczenie søowo w søowo.
Co będzie nam potrzebne ??
Oprócz Qt i Qt Designera niezbędny będzie oczywiście Python i pakiety: PyQt oraz PyQt-
devel. Aby dowiedzieć się jakie pakiety pythona posiadamy aktualnie w systemie proponuję
skorzystać z polecenia: "rpm -qa | grep -i "py"".
Co dalej ??
Podobnie jak w przypadku programowania z użyciem Qt Designera musimy pamiętać o
kolejności pewnych kroków, która jest niezbędna do wykonania programu:
1. Tworzymy GUI (ze slotami i kodem), najlepiej w Qt Designerze
2. Kompilujemy GUI i tworzymy kod Pythona za pomocÄ… programu pyuic
3. Tworzymy plik gøówny programu, który bÄ™dzie tworzyø formÄ™
4. Odpalamy programik za pomocÄ… python nazwa.py
Pierwsze primo...
Tworzenie aplikacji rozpoczynamy od stworzenia GUI. W tym celu odpalamy Qt Designera.
Aby metodyka pracy z Qt w Pythonie, albo Pythonem w Qt byøa zrozumiaøa, program który
napiszemy będzie banalnie prosty. Po raz kolejny w tym kursie napiszemy "hello world". W Qt
Designerze tworzymy nowÄ… formatkÄ™ QDialog dodajemy do niej pushButtona, lineEdita i slota
witajcie(). èÄ…czymy slota z sygnaøem wciÅ›niÄ™cia przycisku. A do wygenerowanej funkcji wklejamy
kod:
void Form1::witajcie()
{
self.lineEdit1.setText( "Witajcie programisty" )
Kopiowanie kursu w caøoÅ›ci lub w kawaøku dozwolone pod warunkiem umieszczenia autorstwa
kursu (Tomasz Pielech) i podania adresu email autora (moux@post.pl)
}
dla porównania ten sam kod w C++ wyglÄ…daø by tak:
void Form1::witajcie()
{
lineEdit1->setText( "Witajcie programisty" );
}
Jak widać pewne różnice są oczywiście, w końcu mamy do czynienia z innym językiem
programowania.
Drugie primo... kompilacja
W katalogu, w którym zapisaliśmy nasze pliki wygenerowane przez Qt Designera wydajemy
polecenie: "pyuic form1.ui > form1.py". Na niektórych Linuksach polecenie to powinno wyglądać
tak: "pyuic form1.ui -o form1.py". W ten sposób wygenerowaliśmy sobie obraz kod tworzenia
okienka qt przy pomocy Pythona. Do poprawnego dziaøania aplikacji jest to jednak za maøo.
Musimy mieć jeszcze plik gøówny, który z tego kodu utworzy okienko i je uruchomi.
Trzecie primo... main.py
Na temat tego pliku powiem tylko jedno. W przypadku tworzenia aplikacji za pomocÄ… Qt
Designera jego treść będzie praktycznie nie zmienne. Podobnie jak w przypadku C++, gdzie Qt
Designer tworzyø za nas kod tego pliku. Zawsze byø on prawie niezmienny. Treść jest nastÄ™pujÄ…ca:
from qt import *
from form1 import *
import sys
if __name__ == "__main__":
app = QApplication( sys.argv )
f = Form1()
f.show()
app.setMainWidget(f)
app.exec_loop()
zmiany jeśli jakieś będziemy wykonywać to co najwyżej w nazwie pliku form1 i/lub nazwie
formatki. Plik ten jest ostatnim ogniwem w fazie projektowania programów w PyQt. Możemy teraz
zapisać ten plik pod dowolnÄ… nazwÄ… i odpalić caøość za pomocÄ… polecenia "python main.py"
Kopiowanie kursu w caøoÅ›ci lub w kawaøku dozwolone pod warunkiem umieszczenia autorstwa
kursu (Tomasz Pielech) i podania adresu email autora (moux@post.pl)
Programowanie w Qt –ð kurs 76
Myślę, że na dobry początek tyle wiadomości wystarczy. W następnych odcinkach napiszę
trochę więcej na temat poruszania się po klasach i slotach w PyQt, być może będzie też trochę na
temat Pythona w zastosowaniach. Any questions ??
Kopiowanie kursu w caøoÅ›ci lub w kawaøku dozwolone pod warunkiem umieszczenia autorstwa
kursu (Tomasz Pielech) i podania adresu email autora (moux@post.pl)
Programowanie bazodanowe
Zanim zaczne opisywanie baz danych i ich obsøugi w Qt, muszÄ™ zapodać wstÄ™p na temat
tego co będzie nam potrzbne aby się tego nauczyć. Po pierwsze serwer baz danych zdalny lub
lokalny. Po drugie lib do Qt do obsøugi baz danych. BÄ™dziemy siÄ™ uczyć na podstawie MySQL wiÄ™c
lib do obsøugi MySQL w qt bÄ™dzie w pakiecie qt-MySQL. Przykøadowa baza danych, którÄ…
bÄ™dziemy operować w tym tekÅ›cie zostaøa utworzona za pomocÄ… pliku PL/SQL:
# Tworzymy szkoleniowa bazke ludzie i wybieramy ja jako uzytkowa
#
[ Pobierz całość w formacie PDF ]