Está en la página 1de 46

Introduccin al desarrollo multiplataforma con Qt 4

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


Copyright 2007 Lisandro Damin Nicanor Prez Meyer perezmeyer en/at gmai !com http"//perezmeyer!com!ar/ #t and the #t ogo are trademar$s o% &ro tech in Nor'ay( the )nited *tates and other co+ntries! Los e,emp os +ti izados en stas transparencias pertenecen a &+toria de #t -!. /00( parte de a doc+mentaci1n o%icia de #t /20! /00 http"//doc!tro tech!com/-!./t+toria !htm /20 http"//doc!tro tech!com/ 3sta presentaci1n se enc+entra disponi4 e en http"//perezmeyer!com!ar/%i es/introd+ccion5#t/ Licencia 5tri4+ci1n6CompartirDeri7adas8g+a 2!9 5rgentina http"//creati7ecommons!org/ icenses/4y6sa/2!9/ar/
Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

:ah;a : anca Lin+< )sers =ro+p http"//44 +g!+s a!org!ar/

>ama ?st+dianti 8??? )N* http"//'''!ieee!+ns!ed+!ar/

Departamento de 8ngenier;a ? ctrica y Comp+tadoras A )N* http"//'''!inge ec!+ns!ed+!ar/

=r+po de )s+arios de *o%t'are Li4re de C1rdo4a http"//'''!gr+ ic!org!ar/

=r+po de )s+arios de so%t'are Li4re de a @ac+ tad de 8ngenier;a http"// +g!%i!+4a!ar/

Lisandro Damin Nicanor Prez Meyer eptiem!re "##$

Introduccin al desarrollo multiplataforma con Qt 4


Qu es Qt?
#t es +n %rame'or$ para e desarro o de ap icaciones m+ tip ata%orma! 5 g+nas de s+s caracter;sticas son" Compati4i idad m+ tip ata%orma con +n s1 o c1digo %+ente Per%ormance de CBB Disponi4i idad de c1digo %+ente ?<ce ente doc+mentaci1n @ci mente internaciona4i iza4 e 5rC+itect+ra ista para p +gins

Pero o mas importante de todo es C+e!!!


Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

5 os programadores es g+sta "6D

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


Disponibilidad de Qt #t commercia edition #t Epen *o+rce edition

5di7inen c+ 7amos a 7er!!! "6D


Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


Componentes del framework Qt
Las libreras Qt Fc ases en CBBD Qt Designer( para crear %orm+ arios 7is+a mente Qt Assistant( acceso rpido a a doc+mentaci1n Qt Linguist( trad+cci1n rpida de programas qmake( simp i%ica e proceso de constr+cci1n de proyectos en as di%erentes p ata%ormas soportadas Mas herramientas como moc( +ic( rcc( Ctcon%ig( !!!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


Qu vamos a ver
?sta char a pretende ser +na introd+cci1n a a programaci1n de 8nter%aces =r%icas de )s+ario F=)8sD +sando #t -! 8remos introd+ciendo as caracter;sticas de #t a medida C+e sea necesario! Crearemos todas as inter%aces a tra7s de c1digo( sin +ti izar #t Designer( para poder ir desc+4riendo a %i oso%;a detrs de #t!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


ola mundo! 8n%a ta4 e en e 4otiC+;n de programador( n+estro primer enc+entro ser creando +na ap icaci1n C+e m+estre e ya conocido GHo a m+ndoI 3ste e,emp o contiene o m;nimo necesario para o4tener +na ap icaci1n hecha en #t andando!
Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


#include <QApplication> #include <QPushButton> int main(int argc, char *argv[])
8ncorporamos a de%inici1n de a c ase QApplication& &iene C+e e<istir e<actamente +na QApplication por cada ap icaci1n =)8 C+e QApplication app(argc, argv)! +ti ice #t! QApplication es +n e,emp o de patr1n *ing eton! QApplication mane,a 7arios rec+rsos g o4a es de a ap icaci1n( QPushButton hello("#$ola mundo%")! como e c+rsor y a %+ente por de%ecto!

hello&resi'e(()), *))! hello&sho+()! return app&e,ec()!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


#include <QApplication> #include <QPushButton> int main(int argc, char *argv[])
Para cada c ase C+e sea parte pJ4 ica de a 5P8 de #t( e<iste +nQApplication enca4ezado de mismo nom4re C+e contiene s+ de%inici1n app(argc, argv)!

QPushButton hello("#$ola mundo%")! hello&resi'e(()), *))! hello&sho+()! return app&e,ec()! -

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


#include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) QApplication app(argc, argv)!
La %+nci1n main es e p+nto de entrada a programa! QPushButton hello("#$ola mundo%")! ? parmetro argc es e nJmero de arg+mentos de a inea hello&resi'e(()), *))! de comandos( y argv[] es +n arreg o de arg+mentos de inea de comandos!

hello&sho+()! return app&e,ec()!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


#include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) QApplication app(argc, argv)! QPushButton hello("#$ola mundo%")! hello&resi'e(()), *))! hello&sho+()! ? o4,eto app es a instancia de QApplication de n+estro return app&e,ec()! -

programa! Notar C+e se e pasa argc y argv como arg+mento para C+e p+eda procesar arg+mentos de ineas de comando como -display en K22

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


#include De4ido <QApplication> a C+e no e especi%icamos +na 7entana padre Fe seg+ndo #include <QPushButton> arg+mento de QPushButtonD( e mismo ser +na 7entana por si int main(int argc, char *argv[])
mismo( con s+ marco y 4arra de t;t+ o! Creamos +n 4ot1n( y e asignamos e te<to Hola mundo!!

QApplication app(argc, argv)! QPushButton hello("#$ola mundo%")! hello&resi'e(()), *))! hello&sho+()! return app&e,ec()! Le damos +n tamaLo inicia en pi<e es( e<c +yendo e marco y a 4arra de t;t+ o de a 7entana!
Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


#include <QApplication> #include <QPushButton> int main(int argc, char *argv[])
)n 'idget Fas; amamos a todos os componentes gr%icos de #tD nun"a se m+estra c+ando se crea( para eso hay C+e amar a a QApplication app(argc, argv)! %+nci1n show !

QPushButton hello("#$ola mundo%")! hello&resi'e(()), *))! hello&sho+()! return app&e,ec()! -

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


5C+; es donde main ! e pasa e contro a #t! Q"or#Application$$#%#c ! #include <QApplication> 7a a retornar c+ando a ap icaci1n termine! #include <QPushButton> Q"or#Application es a c ase 4ase de QApplication! 8mp ementa e nJc eo de a %+nciona idad no6=)8 de Qapplication( y p+ede ser +ti izado c+ando int main(int argc, char *argv[]) se desarro an ap icaciones no #$%& ?n Q"or#Application$$#%#c !( #t reci4e y procesa os e7entos de +s+ario QApplication app(argc, argv)! y sistema y se os pasa a 'idget apropiado!

QPushButton hello("#$ola mundo%")! hello&resi'e(()), *))! hello&sho+()! return app&e,ec()! -

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


A "o"inar la torta!
Ma tenemos n+estro c1digo %+ente isto para e7ar a horno! Pero( para compi ar +na ap icaci1n CBB( norma mente se +ti iza +n archi7o Ma$e%i e! 3sto s+e e ser +n poco engorroso( mas si estamos pensando en C+e de4er;a ser m+ tip ata%orma! Para eso e<iste a herramienta Cma$e" =+ardamos n+estro c1digo como main!cpp y +ego hacemos" &ma'# -pro(#ct &ma'# ? primer comando e dice a Cma$e C+e cree +n archi7o de proyecto de e<tensi1n !pro! ? seg+ndo e dice C+e( 4asndose en e !pro e<istente( cree +n archi7o Ma$e%i e acorde a n+estra p ata%orma! *1 o nos C+eda e,ec+tar ma$e y G istoI( ya podemos e,ec+tar n+estro primer programa en #t!
Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


5greg+emos %+nciona idad #include <QApplication> #include <Q.ont> #include <QPushButton> int main(int argc, char *argv[])
5hora +saremos %+entes a tra7s de a c ase Q)ont QApplication app(argc, argv)!

QPushButton /uit("0alir")! /uit&resi'e(12, *))! /uit&set.ont(Q.ont("3imes", (4, Q.ont55Bold))! Q678ect55connect(9/uit, 0:;<A=(clic>ed()), 9app, 0=63(/uit()))! /uit&sho+()! return app&e,ec()! Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


5greg+emos %+nciona idad #include <QApplication> #include <Q.ont> #include <QPushButton>
Podr;amos ha4er +sado Q)ont*#trics int main(int argc, char *argv[]) para a,+star e tamaLo correcto o de,ar C+e QPushButton e i,a +n tamaLo razona4 e!

QApplication app(argc, argv)! QPushButton /uit("0alir")! /uit&resi'e(12, *))! /uit&set.ont(Q.ont("3imes", (4, Q.ont55Bold))! Q678ect55connect(9/uit, 0:;<A=(clic>ed()), 9app, 0=63(/uit()))! ? egimos +na %+ente de 2N p+ntos para e 4ot1n( de a %ami ia &imes! return app&e,ec()!

&am4in es posi4 e cam4iar a %+ente por de%ecto para toda a ap icaci1n /uit&sho+()! +ti izando QApplication$$s#t)ont !!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Q+,(#ct$$conn#ct ! es C+izs a caracter;stica mas importante de #t! Notar C+e conn#ct ! es +na %+nci1n esttica de Q+,(#ct! La amada a conn#ct ! esta4 ece +na cone<i1n de +n s1 o sentido entre dos o4,etos de #t Fo4,etos C+e heredan de Q+,(#ct( directa + #include <QApplication> indirectamenteD! Cada o4,eto #t p+ede tener tanto signals FseLa esD #include <Q.ont> para en7iar mensa,es como s ots Fp+ertosD para reci4ir os! &odos os 'idgets<QPushButton> son o4,etos #t( de4ido a C+e heredan de Q-idg#t( C+e a s+ #include 7ez hereda de Q+,(#ct! 5C+; a seLa clic'#d ! de 4ot1n &uit est conectada a s ot &uit ! int main(int argc, char *argv[]) de a ap icaci1n( de manera de C+e c+ando e 4ot1n sea apretado( a ap icaci1n se cierre!

Introduccin al desarrollo multiplataforma con Qt 4

QApplication app(argc, argv)!

QPushButton /uit("0alir")! /uit&resi'e(12, *))! /uit&set.ont(Q.ont("3imes", (4, Q.ont55Bold))! Q678ect55connect(9/uit, 0:;<A=(clic>ed()), 9app, 0=63(/uit()))! /uit&sho+()! return app&e,ec()!
Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


Como padre e 'i(o ?n n+estro pr1<imo e,emp o crearemos n+estro propio 'idget y 7eremos como #t se encarga de as re aciones entre e os!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo
#include #include #include #include <QApplication> <Q.ont> <QPushButton> <Q?idget>

multiplataforma con Qt 4

class @A?idget 5 pu7lic Q?idget pu7lic5 @A?idget(Q?idget *parent B ))! -! @A?idget55@A?idget(Q?idget *parent) 5C+; creamos +na n+e7a c ase! Como a misma hereda de Q-idg#t( a 5 Q?idget(parent)

n+e7a c as ser +n 'idget y podr ser tanto +na 7entana como +n 'idget hi,o Fcomo e QPushButton de cap;t+ o anteriorD! set.i,ed0i'e(C)), (C))! *1 o de%inimos +n constr+ctor! Los dems mtodos se heredan de Q-idg#t. */uit B ne+ QPushButton(tr("0alir"), this)! ? QPushButton constr+ctor es +n constr+ctor estndar de +n 'idget #t! *iempre se de4e /uitD>set;eometrA(EC, F), 12, *))! crear +n constr+ctor simi ar c+ando se crean 'idgets! /uitD>set.ont(Q.ont("3imes", (4, Q.ont55Bold))! ? arg+mento es e 'idget padre! Para crear +na 7entana se de4e especi%icar +n p+ntero n+ o Fcomo es e caso por de%ecto de ste e,emp oD!
connect(/uit, 0:;<A=(clic>ed()), /App, 0=63(/uit()))!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo
#include <QApplication> #include <Q.ont> #include <QPushButton> #include La imp<Q?idget> ementaci1n de constr+ctor comienza aC+;! Como a class @A?idget 5 pu7lic Q?idget

multiplataforma con Qt 4

mayor;a de os 'idgets( s1 o pasa e padre a constr+ctor de Q-idg#t!

pu7lic5 @A?idget(Q?idget *parent B ))! -! @A?idget55@A?idget(Q?idget *parent) 5 Q?idget(parent) set.i,ed0i'e(C)), (C))! QPushButton */uit B ne+ QPushButton(tr("0alir"), this)! /uitD>set;eometrA(EC, F), 12, *))! /uitD>set.ont(Q.ont("3imes", (4, Q.ont55Bold))! connect(/uit, 0:;<A=(clic>ed()), /App, 0=63(/uit()))!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo
#include #include #include #include <QApplication> <Q.ont> <QPushButton> <Q?idget>

multiplataforma con Qt 4

? 'idget no sa4e como redimensionarse( por o C+e e %i,aremos s+ tamaLo! ?n e Q?idget pr1<imo e,emp o 7eremos como hacer C+e class @A?idget 5 pu7lic responda ante +n redimensionamiento de a 7entana!
pu7lic5 @A?idget(Q?idget *parent B ))! -! @A?idget55@A?idget(Q?idget *parent) 5 Q?idget(parent) set.i,ed0i'e(C)), (C))! QPushButton */uit B ne+ QPushButton(tr("0alir"), this)! /uitD>set;eometrA(EC, F), 12, *))! /uitD>set.ont(Q.ont("3imes", (4, Q.ont55Bold))! connect(/uit, 0:;<A=(clic>ed()), /App, 0=63(/uit()))!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

5C+; creamos y damos parmetros +n 'idget hi,o de ste 'idget( es decir( e padre es a instancia de *y-idg#t! La %+nci1n trFD marca a cadena para s+ trad+cci1n( haciendo posi4 e cam4iar a en tiempo de e,ec+ci1n 4asndose en os contenidos de archi7o #include <QApplication> de trad+cci1n! ?s +na 4+ena idea marcar de sta manera a toda cadena C+e #include <Q.ont> 7 e +s+ario! #include <QPushButton> Notar C+e &uit es +na 7aria4 e oca en e constr+ctor! *y-idg#t no sig+e e #include <Q?idget> rastro de e a( #t o hace( y a 4orrar a+tomticamente c+ando a instancia de o4,eto *y-idg#t sea 4orrada! Por sto es C+e *y-idg#t no necesita +n class @A?idget 5 pu7lic Q?idget destr+ctor! Por otro ado( no oc+rre daLo a g+no si +no decide 4orrar +n hi,o( ya C+e pu7lic5 ste e a7isar a+tomticamente a #t de s+ m+erte inminente! @A?idget(Q?idget *parent B ))!

Introduccin al desarrollo multiplataforma con Qt 4

-!

@A?idget55@A?idget(Q?idget *parent) 5 Q?idget(parent) set.i,ed0i'e(C)), (C))! QPushButton */uit B ne+ QPushButton(tr("0alir"), this)! /uitD>set;eometrA(EC, F), 12, *))! /uitD>set.ont(Q.ont("3imes", (4, Q.ont55Bold))! connect(/uit, 0:;<A=(clic>ed()), /App, 0=63(/uit()))!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo
#include #include #include #include <QApplication> <Q.ont> <QPushButton> <Q?idget>

multiplataforma con Qt 4

class @A?idget 5 pu7lic Q?idget pu7lic5 @A?idget(Q?idget *parent B ))! -! @A?idget55@A?idget(Q?idget *parent) 5 Q?idget(parent) set.i,ed0i'e(C)), (C))! QPushButton */uit B ne+ QPushButton(tr("0alir"), this)! /uitD>set;eometrA(EC, F), 12, *))! /uitD>set.ont(Q.ont("3imes", (4, Q.ont55Bold))! connect(/uit, 0:;<A=(clic>ed()), /App, 0=63(/uit()))!

La amada a Q-idg#t$$s#t/#om#try ! setea tanto a posici1n de 'idget en a panta a como e tamaLo! ?s eC+i7a ente a amar a Lisandro Damin ! Nicanor Prez Septiembre 2007 Q-idg#t$$mov# seg+ido deMeyer Q-idg#t$$r#si0# !!

Introduccin al desarrollo
#include #include #include #include <QApplication> <Q.ont> <QPushButton> <Q?idget>

multiplataforma con Qt 4

class @A?idget 5 pu7lic Q?idget pu7lic5 @A?idget(Q?idget *parent B ))! ? p+ntero &App es +na 7aria4 e oca dec arada en e enca4ezado de -!

1QApplication2! 5p+nta a a Jnica instancia de QApplication en e @A?idget55@A?idget(Q?idget *parent)programa!


5 Q?idget(parent) set.i,ed0i'e(C)), (C))! QPushButton */uit B ne+ QPushButton(tr("0alir"), this)! /uitD>set;eometrA(EC, F), 12, *))! /uitD>set.ont(Q.ont("3imes", (4, Q.ont55Bold))! connect(/uit, 0:;<A=(clic>ed()), /App, 0=63(/uit()))!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


int main(int argc, char *argv[]) QApplication app(argc, argv)! @A?idget +idget! +idget&sho+()! return app&e,ec()!

5C+; instanciamos a *y-idg#t( o mostramos e iniciamos a ap icaci1n!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


A"omodando las "osas din)mi"amente ?n e sig+iente e,emp o 7eremos e +so de ayo+ts y contin+aremos 7iendo e concepto de signa s y s ots!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


#include #include #include #include <QPushButton> <Q0lider> <QGBo,=aAout> <Q?idget>

class @A?idget 5 pu7lic Q?idget pu7lic5 @A?idget(Q?idget *parent B ))! -! De%inimos n+estra c ase como hemos 7isto antes( y agregamos +nos n+e7os enca4ezados!
Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


@A?idget55@A?idget(Q?idget *parent) 5 Q?idget(parent) QPushButton */uit B ne+ QPushButton(tr("Quit"))! /uitD>set.ont(Q.ont("3imes", (4, Q.ont55Bold))! Q=HI<um7er *lcd B ne+ Q=HI<um7er(C)! lcdD>set0egment0tAle(Q=HI<um7er55.illed)! Q0lider *slider B ne+ Q0lider(Qt55$ori'ontal)! sliderD>setJange(), KK)! sliderD>setGalue())!

lcd es +n Q3"45um,#r ( +n 'idget C+e m+estra nJmeros em+ ando a +n connect(/uit, 0:;<A=(clic>ed()), /App, 0=63(/uit()))! disp ay LCD! 3sta instancia se con%ig+r1 para C+e m+estre dos d;gitos! connect(slider, 0:;<A=(valueHhanged(int)), lcd, 0=63(displaA(int)))! Con%ig+ramos a propiedad Q3"45um,#r$$s#gm#nt6tyl# a
QGBo,=aAout *laAout B ne+ QGBo,=aAout! laAoutD>add?idget(/uit)! laAoutD>add?idget(lcd)! laAoutD>add?idget(slider)! set=aAout(laAout)!

Q3"45um,#r$$)ill#d para hacer %ci a egi4i idad de 'idget!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4


@A?idget55@A?idget(Q?idget *parent) 5 Q?idget(parent) QPushButton */uit B ne+ QPushButton(tr("Quit"))! /uitD>set.ont(Q.ont("3imes", (4, Q.ont55Bold))! Q=HI<um7er *lcd B ne+ Q=HI<um7er(C)! lcdD>set0egment0tAle(Q=HI<um7er55.illed)! Q0lider *slider B ne+ Q0lider(Qt55$ori'ontal)! sliderD>setJange(), KK)! sliderD>setGalue())! connect(/uit, 0:;<A=(clic>ed()), /App, 0=63(/uit()))! connect(slider, 0:;<A=(valueHhanged(int)), lcd, 0=63(displaA(int)))! QGBo,=aAout *laAout B ne+ QGBo,=aAout! ? +s+ario p+ede +sar e 'idget Q6lid#r para a,+star +n 7a or laAoutD>add?idget(/uit)! laAoutD>add?idget(lcd)! entero dentro de +n rango( en ste caso decidimos C+e %+ese de 0 laAoutD>add?idget(slider)! a OO( con 7a or inicia 0! set=aAout(laAout)! Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo
5C+; +samos e mecanismo de signa s y s ots para conectar a seLa valu#"hang#d ! de s ider a s ot display ! de LCD! @A?idget55@A?idget(Q?idget Cada 7ez C+e e s ider*parent) cam4ie de 7a or( com+nica e n+e7o 7a or 5 Q?idget(parent) emitiendo a seLa valu#"hang#d !! De4ido a C+e dicha seLa est conectada a a s ot !( e mismo es amado c+ando se emite a QPushButton */uit B display ne+ QPushButton(tr("Quit"))! seLa ! Ning+no de os dos o4,etos sa4e so4re e otro( o C+e es esencia /uitD>set.ont(Q.ont("3imes", (4, Q.ont55Bold))! en a programaci1n orientada a componentes! Q=HI<um7er Los s ots son *lcd %+nciones B ne+ Q=HI<um7er(C)! norma es de CBB para todo otro +so( y sig+en lcdD>set0egment0tAle(Q=HI<um7er55.illed)! as normas de acceso norma de CBB!
Q0lider *slider B ne+ Q0lider(Qt55$ori'ontal)! sliderD>setJange(), KK)! sliderD>setGalue())! connect(/uit, 0:;<A=(clic>ed()), /App, 0=63(/uit()))! connect(slider, 0:;<A=(valueHhanged(int)), lcd, 0=63(displaA(int)))! QGBo,=aAout *laAout B ne+ QGBo,=aAout! laAoutD>add?idget(/uit)! laAoutD>add?idget(lcd)! laAoutD>add?idget(slider)! set=aAout(laAout)! Lisandro Damin Nicanor Prez Meyer Septiembre 2007

multiplataforma con Qt 4

Introduccin al desarrollo multiplataforma con Qt 4


@A?idget55@A?idget(Q?idget *parent) 5 Q?idget(parent) *y-idg#t ahora +sa Q7Bo%3ayout para mane,ar a geometr;a de s+s QPushButton */uit B ne+ QPushButton(tr("Quit"))! redimensionados c+ando a 7entana es redimensionada! L+ego /uitD>set.ont(Q.ont("3imes", (4, Q.ont55Bold))!

'idgets hi,os! 3sto tam4in ogra C+e os 'idgets hi,os sean

agregamos os 'idgets &uit( lcd y slid#r a ayo+t +sando !! Q=HI<um7er *lcd B ne+ QBo%3ayout$$add-idg#t Q=HI<um7er(C)! La %+nci1n Q-idg#t$$s#t3ayout ! insta a e ayo+t en *y-idg#t( lcdD>set0egment0tAle(Q=HI<um7er55.illed)! con7irtiendo a ayo+t y a todos s+s componentes en s+s hi,os( por o Q0lider *slider B ne+ Q0lider(Qt55$ori'ontal)! C+e no de4emos preoc+parnos por destr+ir os! ?s por sto C+e no sliderD>setJange(), KK)! especi%icamos e padre a &uit( lcd y slid#r!
sliderD>setGalue())! connect(/uit, 0:;<A=(clic>ed()), /App, 0=63(/uit()))! connect(slider, 0:;<A=(valueHhanged(int)), lcd, 0=63(displaA(int)))! QGBo,=aAout *laAout B ne+ QGBo,=aAout! laAoutD>add?idget(/uit)! laAoutD>add?idget(lcd)! laAoutD>add?idget(slider)! set=aAout(laAout)! Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

Hasta e momento est+7imos 7iendo ap icaciones senci as( pero C+e c+4ren parte de as caracter;sticas mas importantes de #t! Peamos otros e,emp os!!!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

)n e,emp o mas de t+toria ( sta 7ez haciendo mas hincapi en a QmagiaR de os signa s y s ots!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

)n e,emp o mas de t+toria ( sta 7ez haciendo mas hincapi en a QmagiaR de os signa s y s ots!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

)n e,emp o mas de t+toria ( sta 7ez haciendo mas hincapi en a QmagiaR de os signa s y s ots!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

)n e,emp o mas de t+toria ( sta 7ez haciendo mas hincapi en a QmagiaR de os signa s y s ots!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

)n e,emp o mas de t+toria ( sta 7ez haciendo mas hincapi en a QmagiaR de os signa s y s ots!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

)n e,emp o mas de t+toria ( sta 7ez haciendo mas hincapi en a QmagiaR de os signa s y s ots!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

)n e,emp ito C+e hace +so de Epen=L( cortes;a de a gente de #5ntenna Fentre as C+e se enc+entra 7+estro ser7idor S6D D
Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

M no nos podemos o 7idar de!!!

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

TPreg+ntasU

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

Introduccin al desarrollo multiplataforma con Qt 4

G=raciasI

Lisandro Damin Nicanor Prez Meyer Septiembre 2007

También podría gustarte