[ 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 ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • drakonia.opx.pl