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

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 閱讀(2820) 評論(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>
            欧美激情视频在线播放| 久久久综合激的五月天| 欧美日韩喷水| 欧美国产激情| 欧美成人在线免费观看| 欧美91视频| 欧美日韩免费一区| 国产精品高清网站| 国产一区二区三区久久久| 精品成人久久| 一区二区三区av| 亚洲一区自拍| 久久久久久9999| 欧美激情一区二区三区在线视频| 亚洲高清123| 亚洲免费观看高清完整版在线观看熊 | 欧美国产日本| 久久久精品免费视频| 久久这里有精品15一区二区三区| 免费一级欧美在线大片| 亚洲国产日韩一区二区| 一区二区欧美激情| 久久av免费一区| 欧美久久成人| 国产精品视频观看| 91久久午夜| 欧美在线电影| 亚洲人成欧美中文字幕| 亚洲欧美美女| 欧美日韩国产大片| 亚洲第一页在线| 欧美一区二区三区四区在线观看地址 | 在线观看欧美黄色| 亚洲一区二区三区色| 久久免费偷拍视频| 一本一本久久a久久精品牛牛影视| 久久国产成人| 国产精品久久毛片a| 亚洲高清不卡| 久久久亚洲一区| 99国产精品自拍| 免费在线看成人av| 激情视频一区| 欧美一区二区三区四区视频| 亚洲精品在线视频| 欧美freesex交免费视频| 红桃视频亚洲| 久久久国产精品一区二区三区| 亚洲精品美女在线观看| 久久综合久久综合这里只有精品 | 欧美日韩国产在线播放| 国产精品影音先锋| 亚洲最新视频在线播放| 亚洲高清自拍| 久热爱精品视频线路一| 国产亚洲欧美日韩精品| 亚洲综合成人在线| 日韩亚洲国产欧美| 欧美视频在线播放| 亚洲欧美日韩精品综合在线观看| 亚洲美女中出| 国产精品大全| 亚洲一区二区三区四区在线观看 | 欧美激情视频一区二区三区免费| 久久久www成人免费精品| 午夜精品区一区二区三| 亚洲美女毛片| 欧美日韩国产欧| 一区二区三区鲁丝不卡| 亚洲日本欧美| 欧美日韩国产色站一区二区三区| 日韩亚洲精品视频| 亚洲精品在线电影| 国产精品久久久一本精品| 午夜在线电影亚洲一区| 欧美亚洲午夜视频在线观看| 国产一区91精品张津瑜| 牛人盗摄一区二区三区视频| 男人的天堂亚洲| 中日韩美女免费视频网站在线观看| 日韩亚洲欧美中文三级| 国产精品热久久久久夜色精品三区| 午夜日韩福利| 久久精品观看| 亚洲精品免费在线观看| 中文在线资源观看网站视频免费不卡| 国产精品婷婷午夜在线观看| 久久久最新网址| 欧美成人一区二免费视频软件| 亚洲淫性视频| 久久综合狠狠综合久久激情| 一区二区欧美国产| 久久精品九九| 在线一区二区视频| 欧美有码视频| 一区二区三区产品免费精品久久75| 亚洲主播在线播放| 最近中文字幕日韩精品| 亚洲一区二区在线| 亚洲激情第一区| 西西裸体人体做爰大胆久久久| 亚洲国产高清自拍| 亚洲女优在线| 一区二区三区精品国产| 久久精品中文字幕一区| 亚洲视频图片小说| 老司机精品视频网站| 性欧美1819性猛交| 欧美精品一区二区蜜臀亚洲| 久久色在线播放| 国产精品久久久久久久久借妻| 免费观看日韩| 国内成人精品2018免费看| 亚洲伦理在线观看| 亚洲高清视频一区| 欧美在线啊v| 欧美一区二区久久久| 欧美日本在线| 亚洲第一中文字幕| 精品91视频| 欧美在线在线| 久久久国产午夜精品| 国产精品美女www爽爽爽视频| 亚洲黄色av| 在线观看欧美精品| 久久久久久综合网天天| 久久九九免费| 国产日韩欧美成人| 欧美日韩国产天堂| 国产视频精品xxxx| 久久网站免费| 欧美性理论片在线观看片免费| 欧美刺激性大交免费视频| 国产在线播放一区二区三区| 亚洲欧美99| 欧美在线免费视频| 久久一区二区精品| 韩国av一区二区三区四区| 午夜欧美电影在线观看| 欧美亚洲一区三区| 国产伦理精品不卡| 性伦欧美刺激片在线观看| 欧美一区三区三区高中清蜜桃 | 亚洲性av在线| 欧美调教vk| 亚洲综合清纯丝袜自拍| 欧美在线高清视频| 国内外成人免费激情在线视频| 欧美一级片在线播放| 久久久国产精品一区| 国外成人在线| 免费高清在线视频一区·| 亚洲国产欧美日韩另类综合| 一区二区日韩| 国产日韩精品一区二区| 久久精品一本| 91久久黄色| 亚洲欧美激情诱惑| 国产性色一区二区| 久久亚洲色图| 亚洲精品四区| 久久精品国产77777蜜臀| 亚洲第一精品夜夜躁人人爽| 欧美高清日韩| 亚洲欧美文学| 欧美激情一区二区三区在线| 制服丝袜亚洲播放| 国语自产精品视频在线看| 欧美激情第10页| 亚洲一区二区三区免费在线观看 | 国产精品久久久99| 羞羞漫画18久久大片| 久久亚洲欧洲| 亚洲美女少妇无套啪啪呻吟| 欧美天堂在线观看| 可以看av的网站久久看| 亚洲视频欧美视频| 亚洲国产高清在线| 国产精品激情| 美女精品一区| 亚洲性图久久| 欧美激情欧美激情在线五月| 亚洲欧美日韩一区二区三区在线观看 | 亚洲精选91| 国产一区二区欧美| 欧美日韩播放| 蜜桃久久av一区| 亚洲欧美欧美一区二区三区| 免费在线欧美视频| 久久国产精品亚洲va麻豆| 午夜久久黄色| 激情一区二区三区| 欧美日本国产一区| 久久久噜噜噜久久| 亚洲精品美女久久久久| 国产一区99| 国产精品视频午夜| 欧美日韩精品免费观看视一区二区 | 亚洲黑丝在线| 国产日韩欧美精品|