青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Zero Lee的專欄

Qt GUI Programming Basic

 

QT GUI PROGRAMMING BASIC

=====================================================================

CHAPTER1 NOTES

=======================

THIS CHAPTER CONTAINS 3 CASES USING QT TOOLKIT.

 

CASE 1: HELLO QT

 

PROGRAM CODES:

===============

1 #include <qapplication.h>  

2 #include <qlabel.h>

3

4 int main(int argc, char* argv[])

5 {

6  QApplication app(argc, argv);

7  QLabel* label = new QLabel(“Hello Qt!”, 0);

8  app.setMainWidget(label);

9  label->show();

10  return app.exec();

11 }

 

EXPLANATION:

=============

1,2 >> HEADER FILES CONTAIN THE DEFINITION OF QAPPLICATION AND QLABEL CLASSES.

6 >> CREATE QAPPLICATION OBJECT TO MANAGE THE RESOURCE OF THIS APPLICATION. AND PARAMETERS ARE COMMAND LINE ARGUMENTS. HOWEVER, HERE CONSTRUCTOR IS ONE OF IT.

7 >> CREATE ONE QLABEL WIDGET THAT DISPLAY “HELLO QT!”. IN QT TERM, A WIDGET IS A VISUAL ELEMENT IN A USER INTERFACE. FOR EXAMPLE, BUTTON, MENU, SCOLLBAR, AND FRAMES ARE WIDGETS. CERTAINLY, WIDGETS CAN CONTAIN OTHER WIDGETS. HERE, THIS SECOND ARGUMENT 0 MEANS THAT THE LABEL WIDGET IS ONE WINDOW IN ITS OWN RIGHT, NOT A CHILD WIDGET INSIDE ANOTHER WINDOW. CREATE ONE QLABEL OBJECT, SYNTAX:

QLabel ( const QString & text, QWidget * parent, const char * name = 0, WFlags f = 0 );

8 >> MAKE THE LABEL WIDGET THE APP’S MAIN WIDGET. WITHOUT A MAIN WIDGET, THE PROGRAM WOULD KEEP RUNNING IN THE BACKGROUND EVEN AFTER USER HAS CLOSED THE WINDOW.

 

9 >> MAKE LABEL VISIBLE. SHOW FUNCTION IS NOT PUBLIC ONE OF QLABEL. IT IS INHERITED FROM QWIDGET CLASS. WIDGETS ARE ALWAYS CREATED HIDDEN, SO THAT WE CAN CUSTOMIZE THEM BEFORE SHOWING THEM.

10 >> RETURN CONTROL OF APP TO QT. AT THIS POINT, THE PROGRAM ENTERS A KIND OF STAND-BY MODE(DEAD-LOOP), WHERE IT WAITS FOR USER ACTIONS SUCH AS MOUSE CLICKS AND KEY PRESSES.

 

RUN RESULT:

===========

 

 

=====================================================================

CASE 2: QUIT APPLICATION

 

PROGRAM CODES:

================

1 #include <qapplication.h>

2 #include <qpushbutton.h>

3

4 int main(int argc, char* argv[])

5 {

6   QApplication app(argc, argv);

7   QPushButton* button = new QPushButton(“Quit”, 0);

8   QObject::connect(button, SIGNAL(clicked()), &app, SLOT(quit()));

9   app.setMainWidget(button);

10 button->show();

11 return app.exec();

12 }

 

EXPLANATION:

=============

1,2 >> HEADER FILES CONTAIN THE DEFINITION OF QAPPLICATION AND QPUSHBUTTON CLASSES.

7 >> CREATE ONE QPUSHBUTTON OBJECT WHOSE CAPTION IS “QUIT”. HERE, CONSTRUCTOR SYNTAX IS:

QPushButton ( const QString & text, QWidget * parent, const char * name = 0 )

SECOND ARGUMENT 0 MEANING IS SAME AS QLABEL IN THE CASE1.

8 >> QT’S WIDGETS EMIT SIGNALS TO INDICATE THAT A USER ACTION OR A CHANGE OF STATE HAS OCCURRED. FOR INSTANCE, HERE QPUSHBUTTON EMITS A CLICKED() SIGNAL WHEN USER CLICKS THE BUTTON. A SIGNAL CAN BE CONNECTED TO A FUNCTION (CALLED A SLOT IN THAT CONTEXT), SO THAT WHEN THE SIGNAL IS EMITTED, THE SLOT IS AUTOMATICALLY EXECUTED. HERE, WE CONNECT THE BUTTON’S CLICKED() SIGNAL TO THE QAPPLICATION OBJECT’S QUIT() SLOT. SIGNAL() AND SLOT() MACORS ARE PART OF THE SYNTAX. MORE INFO ABOUT THEIR MECHNISM, PLEASE TURN TO QT ASSISTANT.

CONNET FUNCTION INVOKED SYNTAX:

bool connect (const QObject * sender, const char * signal, const QObject * receiver, const char* member)

 

RUN RESULT:

===========

 

 

=====================================================================

CASE 3: AGE APPLICATION

 

PROGRAM CODES:

================

1 #include <qapplication.h>

2 #include <qhbox.h>

3 #include <qslider.h>

4 #include <qspinbox.h>

5

6 int main(int argc, char* argv[])

7 {

8   QApplication app(argc, argv);

9   QHBox* hbox = new QHBox(0);

10 hbox->setCaption(“Enter Your Age”);

11 hbox->setMargin(50);

12 hbox->setSpacing(20);

13 

14 QSpinBox* spinBox = new QSpinBox(hbox);

15 QSlider* slider = new QSlider(Qt::Horizontal, hbox);

16 spinBox->setRange(0, 130);

17 slider->setRange(0, 130);

18 

19 QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));

20 QObject::connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));

21 spinBox->setValue(35);

22

23 app.setMainWidget(hbox);

24 hbox->show();

25

26 return app.exec();

27 }

 

EXPLANATION:

=============

1,2,3,4 >> HEADER FILES CONTAIN DEFINITION OF QAPPLICATION, QHBOX, QSLIDER AND QSPINBOX CLASSES.

8 >> CREATE ONE QHBOX OBJECT. THE QHBOX WIDGET PROVIDES HORIZONTAL GEOMETRY MANAGEMENT OFR ITS CHILD WIDGETS. SYNTAX:

QHBox ( QWidget * parent = 0, const char * name = 0, WFlags f = 0 )

11, 12 >> USE SETMARGIN() TO ADD SPACE AROUND THE EDGES, AND USE SETSPACING() TO ADD SPACE BETWEEN THE WIDGETS(SPINBOX AND SLIDER).

 UNIT: PIXEL.

 

14, 15 >> CREATE CHILD WIDGETS IN QHBOX WIDGET. QSPINBOX AND QSLIDER.

WHEN CREATING QSPINBOX OBJECT, INVOKE THE FOLLOWING CONSTRUCOTR:

QSpinBox ( QWidget * parent = 0, const char * name = 0 );

WHEN CREATING QSLIDER OBJECT, INVOKE THE FOLLOWING CONSTRUCOTR:

QSlider ( Orientation orientation, QWidget * parent, const char * name = 0 );

QT::ORIENTATION: THIS TYPE IS ENUMUNATION TO SIGNIFY AN OBJECT’S ORIENTATION. TWO VALUES: QT::VERTICAL AND QT::HORIZONTAL.

19,20 >> THE TWO CONNECT() CALLS ENSURE THAT THE SPIN BOX AND THE SLIDER ARE SYNCHRONIZED SO THAT THEY ALWAYS SHOW THE SAME VALUE. WHENEVER THE VALUE OF ONE WIDGET CHANGES, ITS VALUECHANGED(INT) SIGNAL IS EMITTED, AND THE SETVALUE(INT) SLOT OF THE OTHER WIDGET IS CALLED WITH THE NEW VALUE.

 

21 >> WHEN THE SPLIN BOX VLAUE IS SET TO 35, THE QSPINBOX EMITS THE VALUECHANGED(INT) SIGNAL WITH AN INT ARGUMENT OF 35. THIS ARGUMENT IS PASSED TO THE QSLIDER’S SETVALUE(INT) SLOT, WHICH SETS THE SLIDER VALUE TO 35. THE SLIDER THEN EMITS THE VALUECHANGED(INT) SIGNAL, BECAUSE ITS OWN VLAUE CHANGED, TRIGGERING THE SPIN BOX’S SETVALUE(INT) SLOT. BUT AT THIS POINT, SETVALUE(INT) DOESN’T EMIT ANY SIGNAL, SINCE THE SPIN BOX IS ALREADY 35. THIS PREVENTS INFINITE RECURSION. THE FOLLOWING FIRURE EXPLANS THE SITUATION:

 

RUN RESULT:

============

 

CLASSES CHART:

===============

UNTILL NOW, THE CLASSES CHART:

 

 


RESOURCE LINKS:

================

1>> http://www.trolltech.com/

2>> http://www.qtcentre.org/

3>> http://doc.trolltech.com/4.2/examples.html#qt-tutorial

4>> http://www.qiliang.net/qt.html

posted on 2007-05-21 16:14 Zero Lee 閱讀(2813) 評論(0)  編輯 收藏 引用 所屬分類: CC++ Programming

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲免费成人av| 久久综合九九| 韩国三级电影久久久久久| 国产精品久久久久久影院8一贰佰| 裸体丰满少妇做受久久99精品| 亚洲欧洲在线视频| 亚洲免费观看视频| 久久夜色精品国产噜噜av| 久久综合亚州| 久久久久国色av免费看影院 | 亚洲蜜桃精久久久久久久| 国产精品久久一卡二卡| 欧美午夜精品久久久久久人妖| 国产精品ⅴa在线观看h| 欧美性事在线| 国产日韩成人精品| 亚洲精品国久久99热| 亚洲深夜福利网站| 香蕉视频成人在线观看| 久久天堂精品| 亚洲精品久久久久中文字幕欢迎你| 亚洲国产一区二区三区a毛片| 在线亚洲欧美视频| 久久久久久穴| 欧美日韩亚洲高清| 精品999在线播放| 亚洲欧美日韩精品久久久| 久久综合久久综合久久| 中文网丁香综合网| 欧美高清一区二区| 国内精品久久久久影院色| 在线一区日本视频| 欧美国产日韩一区二区三区| 午夜视频久久久| 欧美视频中文一区二区三区在线观看| 在线观看国产精品淫| 午夜视频一区在线观看| 亚洲国产日韩精品| 国产精品99久久久久久白浆小说 | 亚洲私拍自拍| 亚洲国产成人av在线| 亚洲网站在线| 麻豆精品一区二区综合av| 99国产精品视频免费观看一公开| 久久精品国产精品| 国产精品亚洲综合久久| 一区二区日本视频| 蜜臀va亚洲va欧美va天堂| 麻豆精品视频| 久久久噜噜噜久久| 国产精品视频自拍| 在线中文字幕日韩| 亚洲欧洲一区二区三区| 麻豆成人小视频| 亚洲大片精品永久免费| 久久婷婷国产综合国色天香| 亚洲欧美日韩在线一区| 欧美性大战xxxxx久久久| 日韩写真视频在线观看| 亚洲高清免费视频| 免费成人激情视频| 亚洲国产精品www| 欧美激情一区二区| 欧美成人精品激情在线观看| 亚洲精品国产视频| 亚洲啪啪91| 欧美三区免费完整视频在线观看| 一区二区三区久久久| 在线一区视频| 国产欧美精品在线| 久久综合九色九九| 欧美风情在线观看| 亚洲午夜女主播在线直播| 一区二区欧美视频| 国产精品视频内| 久久久.com| 老司机67194精品线观看| 亚洲日本成人网| 亚洲精品乱码久久久久久蜜桃91| 欧美精品久久一区| 亚洲综合视频网| 性娇小13――14欧美| 影音先锋中文字幕一区| 亚洲欧洲精品一区二区三区波多野1战4| 欧美国产精品日韩| 亚洲欧美在线一区| 久久亚洲二区| 亚洲一区影院| 欧美在线综合| 一本高清dvd不卡在线观看| 亚洲欧美国产制服动漫| 极品尤物av久久免费看| 日韩视频一区二区在线观看 | 久久精品国产精品亚洲综合| 久久精品动漫| 一区二区三区高清视频在线观看 | 欧美美女喷水视频| 午夜一区二区三区不卡视频| 久久全国免费视频| 亚洲亚洲精品三区日韩精品在线视频| 午夜精品国产| 奶水喷射视频一区| 亚洲精品欧洲| 国产视频观看一区| 最新国产成人av网站网址麻豆| 欧美性久久久| 欧美韩国在线| 国产日韩欧美高清免费| 91久久精品一区二区三区| 国产精品一级在线| 亚洲欧洲一区二区在线观看 | 国产农村妇女毛片精品久久莱园子 | 亚洲图片激情小说| 美女在线一区二区| 久久久噜噜噜| 国产精品高潮呻吟久久| 91久久国产自产拍夜夜嗨| 好吊妞**欧美| 午夜日韩在线| 午夜精品999| 欧美四级在线观看| 亚洲美女精品一区| 亚洲精品少妇30p| 久久女同互慰一区二区三区| 久久不射网站| 国产欧美日韩另类视频免费观看| 99精品免费网| 亚洲午夜女主播在线直播| 欧美国产亚洲另类动漫| 久久裸体艺术| 国产精品亚洲一区| 亚洲自拍电影| 亚洲免费在线观看| 国产精品久久久久久久久久尿| 亚洲欧洲精品一区| 一本色道88久久加勒比精品| 欧美极品色图| 一本一本大道香蕉久在线精品| 一区二区国产精品| 欧美日韩色一区| 中文在线不卡| 欧美尤物巨大精品爽| 国产日韩精品一区二区| 羞羞答答国产精品www一本| 久久九九精品99国产精品| 国内成+人亚洲+欧美+综合在线| 欧美在线视频全部完| 美女尤物久久精品| 亚洲黄色在线看| 欧美区视频在线观看| 一本久久精品一区二区| 性久久久久久| 国产一区久久| 欧美高潮视频| 亚洲一区二区三区四区在线观看| 欧美一级视频一区二区| 国产一本一道久久香蕉| 蜜臀va亚洲va欧美va天堂| 亚洲精品久久久久久久久久久久久| aa级大片欧美三级| 国产九九精品| 免播放器亚洲一区| 一本色道久久综合一区| 久久精品人人做人人爽| 亚洲精品久久久久久久久久久| 日韩亚洲精品视频| 亚洲乱码国产乱码精品精天堂| 亚洲黄色在线看| 欧美日韩国产一中文字不卡| 一区二区三区导航| 久久久噜噜噜久久中文字幕色伊伊| 在线观看欧美精品| 欧美特黄一区| 老司机成人在线视频| 一区二区三区日韩在线观看 | 亚洲天堂网在线观看| 国产日韩综合| 欧美激情精品久久久久| 亚洲综合第一页| 欧美激情女人20p| 午夜精品福利一区二区蜜股av| 在线观看视频一区二区| 欧美性猛交xxxx乱大交蜜桃| 久久久久欧美精品| 亚洲午夜国产成人av电影男同| 欧美大片va欧美在线播放| 亚洲欧美韩国| 99成人精品| 亚洲第一天堂av| 国产午夜精品久久久| 欧美日韩一区二区三区| 蜜臀av一级做a爰片久久 | 欧美伊久线香蕉线新在线| 日韩视频三区| 亚洲第一页在线| 久久中文字幕导航| 久久精品最新地址| 香蕉久久夜色精品国产使用方法| 亚洲美女视频在线观看| 在线精品视频一区二区三四|