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

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 閱讀(2821) 評論(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>
            欧美一级在线亚洲天堂| 欧美成人蜜桃| 国产亚洲综合精品| 欧美一区二区在线看| 亚洲欧美成人综合| 国产一区二区三区在线观看精品| 欧美在线免费| 久久久免费观看视频| 在线日韩欧美| 亚洲另类在线视频| 欧美视频二区36p| 先锋影音国产一区| 久久久久免费观看| 一级日韩一区在线观看| 亚洲无线一线二线三线区别av| 国产麻豆精品theporn| 久久综合色天天久久综合图片| 另类综合日韩欧美亚洲| 一区二区三区精品| 欧美一区二区精美| 亚洲电影欧美电影有声小说| 亚洲美女精品成人在线视频| 国产色视频一区| 欧美国产精品va在线观看| 欧美丝袜一区二区三区| 老**午夜毛片一区二区三区| 欧美激情一区二区三区| 欧美一区二区三区四区夜夜大片 | 欧美在线3区| 久久精品夜色噜噜亚洲aⅴ| 日韩午夜黄色| 欧美在线免费看| 亚洲午夜精品在线| 久热精品视频在线观看| 午夜精品久久久久久久蜜桃app| 久久久久一区二区三区| 亚洲欧美国产三级| 男男成人高潮片免费网站| 欧美影院视频| 欧美日韩性视频在线| 欧美成人午夜视频| 国产香蕉97碰碰久久人人| 日韩视频精品| 最新中文字幕亚洲| 久久爱www久久做| 亚洲免费在线看| 欧美高清在线| 免费91麻豆精品国产自产在线观看| 欧美日韩人人澡狠狠躁视频| 免费在线成人| 红桃视频一区| 欧美一区二区三区在线播放| 亚洲一区尤物| 欧美日韩一区在线播放| 亚洲国产美女| 亚洲国产二区| 老司机67194精品线观看| 久久久久一区二区三区| 国产免费成人| 午夜精品一区二区三区电影天堂| 亚洲中字黄色| 国产精品扒开腿做爽爽爽视频| 日韩亚洲视频| 亚洲午夜电影| 国产精品99免费看| 亚洲最新在线视频| 亚洲一卡久久| 国产精品日韩欧美一区二区| 亚洲宅男天堂在线观看无病毒| 亚洲免费一在线| 国产精品国内视频| 亚洲综合精品自拍| 欧美一区二区三区视频在线| 国产视频欧美| 久久久久久久综合| 欧美激情第五页| 亚洲精品一区二区三区婷婷月| 欧美大色视频| 日韩西西人体444www| 亚洲夜晚福利在线观看| 国产精品一区亚洲| 久久精品首页| 亚洲黄一区二区三区| 在线午夜精品自拍| 国产精品一区二区女厕厕| 亚洲欧美中日韩| 久久中文字幕导航| 亚洲福利小视频| 欧美紧缚bdsm在线视频| 亚洲天堂免费观看| 久久久久久久网| 亚洲欧洲日产国产网站| 欧美视频日韩视频| 久久丁香综合五月国产三级网站| 欧美第一黄色网| 亚洲伊人伊色伊影伊综合网| 激情国产一区| 欧美视频官网| 久久这里只有| 亚洲一区二区三区视频| 免费久久精品视频| 亚洲尤物在线视频观看| 伊人精品久久久久7777| 欧美日韩一区二区在线| 久久精品国产精品亚洲综合| 最新亚洲一区| 久久综合狠狠综合久久综合88| 一本一本a久久| 伊人久久噜噜噜躁狠狠躁 | 欧美影视一区| 亚洲精品资源美女情侣酒店| 久久精品视频一| 宅男精品视频| 在线观看日韩av电影| 国产精品欧美一区喷水| 欧美阿v一级看视频| 欧美一级视频免费在线观看| 亚洲国产精品va在线看黑人动漫 | 欧美不卡三区| 新67194成人永久网站| 亚洲精品乱码久久久久久| 国产亚洲精品一区二区| 国产精品高清在线观看| 欧美11—12娇小xxxx| 久久精品一区二区三区中文字幕| 亚洲视频一区二区| 亚洲人成人99网站| 免费日本视频一区| 久久久久在线观看| 久久aⅴ乱码一区二区三区| 亚洲最新中文字幕| 亚洲国产精品电影在线观看| 国模精品娜娜一二三区| 国产视频久久网| 国产日本欧美视频| 国产精品免费观看视频| 欧美四级剧情无删版影片| 欧美日本一区| 欧美经典一区二区三区| 欧美激情第1页| 欧美电影美腿模特1979在线看 | 亚洲一区二区毛片| 一区二区三区欧美视频| 夜夜嗨av一区二区三区| 日韩小视频在线观看| 亚洲麻豆av| 一二美女精品欧洲| 国产精品99久久久久久有的能看| 一区二区三区国产精品| 夜夜嗨av色综合久久久综合网| 日韩一级在线| 亚洲视频精选在线| 亚洲综合成人在线| 欧美在线看片| 麻豆成人在线播放| 欧美成黄导航| 欧美视频二区36p| 国产女主播一区| 国产一区二区三区免费观看| 国内精品久久久久久久果冻传媒| 狠狠色伊人亚洲综合网站色 | 欧美精品啪啪| 欧美天堂亚洲电影院在线观看 | 欧美视频观看一区| 国产精品任我爽爆在线播放| 国产视频久久久久久久| 亚洲高清影视| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 免费久久99精品国产自| 亚洲激情精品| 亚洲一区二区三区免费视频| 久久成人av少妇免费| 欧美成人精品高清在线播放| 国产精品成人一区二区三区吃奶| 国产亚洲永久域名| 亚洲精品久久久蜜桃| 欧美一级艳片视频免费观看| 美女黄网久久| 国产精品99久久久久久有的能看| 午夜精品久久99蜜桃的功能介绍| 麻豆国产精品va在线观看不卡| 国产精品av免费在线观看| 国产专区综合网| 中文av一区特黄| 你懂的成人av| 亚洲无线观看| 欧美激情1区2区3区| 国产一区视频在线观看免费| 日韩一区二区免费看| 久久午夜电影| 在线午夜精品自拍| 农村妇女精品| 国产日韩亚洲欧美| 中文在线资源观看网站视频免费不卡| 久久精品一二三| 国产精品99久久不卡二区| 美女尤物久久精品| 国产综合视频| 午夜精品三级视频福利| 亚洲美女免费精品视频在线观看|