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

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| 国产精品99久久99久久久二8| 欧美国产极速在线| 欧美精品九九99久久| 亚洲淫性视频| 欧美夜福利tv在线| 在线看片第一页欧美| 亚洲第一精品影视| 老司机一区二区| 一区二区毛片| 久久精品91久久香蕉加勒比| 亚洲成色最大综合在线| 亚洲精品国产视频| 国产精品日韩久久久久| 欧美3dxxxxhd| 国产精品国码视频| 毛片精品免费在线观看| 欧美日韩一区在线视频| 久久激情视频| 欧美日韩国产色综合一二三四| 午夜精品在线| 久久久久成人精品| 亚洲区一区二| 久久xxxx| 亚洲小说欧美另类社区| 久久国产直播| 欧美日韩国产在线一区| 久久国产精品久久精品国产| 欧美成人亚洲成人| 久久精品色图| 国产精品高清一区二区三区| 久久亚洲综合色| 欧美性猛交xxxx乱大交蜜桃| 裸体丰满少妇做受久久99精品| 欧美日韩在线不卡一区| 另类av导航| 国产视频精品va久久久久久| 亚洲精品美女久久7777777| 激情欧美国产欧美| 亚洲欧美国产一区二区三区| 中文国产成人精品| 免费h精品视频在线播放| 久久国产高清| 国产乱码精品一区二区三| 亚洲精品欧美日韩专区| 伊人激情综合| 欧美在线视频网站| 欧美一区二区三区免费视| 欧美网站在线观看| 亚洲精品自在在线观看| 亚洲精品一区中文| 猛男gaygay欧美视频| 麻豆精品视频在线观看| 国内精品伊人久久久久av影院 | 亚洲特色特黄| 欧美激情综合在线| 亚洲成色www久久网站| 在线精品一区| 两个人的视频www国产精品| 久久免费视频在线| 狠狠色香婷婷久久亚洲精品| 翔田千里一区二区| 久久精品99国产精品日本| 国产女同一区二区| 欧美一区二区三区电影在线观看| 亚洲主播在线| 国产女人精品视频| 欧美在线免费视频| 欧美xart系列高清| 亚洲国产婷婷| 欧美精品97| 一区二区三区日韩欧美精品| 亚洲欧美日本日韩| 国产三区精品| 久久综合伊人77777| 亚洲高清视频一区二区| 一区二区免费看| 国产精品日韩欧美一区二区| 欧美一级大片在线免费观看| 久久躁狠狠躁夜夜爽| 亚洲激情影院| 国产精品国产三级国产aⅴ入口 | 久久国产精品99久久久久久老狼 | 欧美成人一区二区三区| 亚洲清纯自拍| 国产精品日韩精品欧美精品| 性做久久久久久久久| 欧美成年人在线观看| 一区二区三区www| 欧美在线观看一区二区三区| 久久经典综合| 亚洲欧洲在线免费| 欧美一区三区三区高中清蜜桃| 韩日欧美一区二区| 欧美96在线丨欧| 亚洲一区二区高清视频| 免费看的黄色欧美网站| 一区二区三区欧美日韩| 国产中文一区二区| 欧美高清视频在线观看| 亚洲免费一区二区| 欧美99久久| 新狼窝色av性久久久久久| 亚洲二区精品| 国产精品一区二区在线观看网站 | 日韩视频在线一区| 国内成+人亚洲+欧美+综合在线| 欧美精品一二三| 久久精品国产亚洲aⅴ| 一区二区av在线| 奶水喷射视频一区| 欧美在线免费观看亚洲| 一本色道久久综合亚洲91| 一区免费视频| 国产一区二区按摩在线观看| 欧美日韩黄视频| 免费成人av| 久久免费一区| 欧美在线三级| 欧美亚洲色图校园春色| 亚洲一二三区精品| 日韩视频在线你懂得| 亚洲国产精品999| 久久性色av| 久久久久99| 久久精品男女| 久久av一区二区三区亚洲| 亚洲综合日韩中文字幕v在线| 亚洲精品一二三| 亚洲国产精品久久久久秋霞蜜臀| 国产综合第一页| 国产日韩精品在线观看| 国产精品香蕉在线观看| 国产精品久久久久毛片软件| 欧美午夜电影在线观看| 国产精品大片wwwwww| 欧美三区美女| 国产精品久久久久毛片软件| 国产精品高潮视频| 国产精品久久久久久久久免费樱桃 | 中文高清一区| 亚洲综合大片69999| 亚洲欧美www| 欧美一级专区免费大片| 午夜宅男欧美| 久久久久www| 欧美jjzz| 亚洲精品一区二区三区蜜桃久| 亚洲久久成人| 在线视频欧美日韩精品| 亚洲综合不卡| 久久精品亚洲精品| 欧美成人蜜桃| 欧美日韩一区二区三区在线看 | 99精品欧美| 亚洲色图制服丝袜| 欧美一乱一性一交一视频| 久久久福利视频| 欧美高清在线视频| 亚洲精品一二三区| 亚洲网址在线| 久久精品成人一区二区三区| 蜜臀av性久久久久蜜臀aⅴ| 欧美二区在线观看| 国产精品成人一区| 国产小视频国产精品| 亚洲电影在线观看| 一区二区三区色| 久久精品91久久香蕉加勒比| 欧美高清视频在线观看| 一本不卡影院| 久久久97精品| 欧美日韩国产大片| 国产亚洲欧洲997久久综合| 亚洲国产欧美一区二区三区同亚洲 | 国产午夜精品全部视频在线播放| 在线播放视频一区| 亚洲午夜精品久久久久久app| 久久丁香综合五月国产三级网站| 欧美成人午夜激情在线| 9国产精品视频| 久久免费午夜影院| 国产精品天天看| 日韩午夜av| 老牛国产精品一区的观看方式| 亚洲精选在线| 久久亚洲精品一区二区| 国产精品美女久久久久久久| 亚洲国产黄色| 久久gogo国模啪啪人体图| 91久久精品一区| 久久婷婷丁香| 国产区在线观看成人精品| 99re这里只有精品6| 麻豆免费精品视频| 欧美亚洲一区在线| 国产精品初高中精品久久| 日韩亚洲视频|