• <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>
            Cpper
            C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿
            接上文,這篇學學QT中基本控件的使用和QApplication對象
            1.什么是QApplication?
            文檔說明:The QApplication class manages the GUI application's control flow and main settings.
            Application類管理GUI程序控制流和主要參數設置
            QApplication繼承于QCoreApplication。后者提供了控制臺程序的事件流
            2.基本控件的使用例子:
            #include <QApplication>
            #include 
            <QLabel>
            #include 
            <QPalette>

            #define QT_HTML

            QLabel
            * label = NULL;

            void initlabel()
            {
            #ifndef QT_HTML
                label 
            = new QLabel("Hello Qt!");
            #else
                label 
            = new QLabel("<h2><i>Hello</i><font color=red>Qt!</font></h2>");
            #endif
                
            //! set size
                label->setBaseSize(64,48);
                
            //! set alignment
                label->setAlignment(Qt::AlignHCenter);
                
                
            //! sht background color
                QColor bk(100,100,125);
                QPalette palette(bk);
                label
            ->setPalette(palette);
            }

            int main(int argc, char *argv[])
            {
                QApplication app(argc, argv);
                app.setApplicationName(
            "QT Test");
                initlabel();
                label
            ->show();
                
            return app.exec();
            }
            QLabel是QT中的標簽控件它具有控件的一般屬性比如設置大小setBaseSite,設置對齊格式,當然也可以設置背景色或者圖片-這都是通過QPalette調色板來實現的
            需要說明的是QT中的控件文本可以使用Html語法的文本來操作具體如上。
            那覺這個功能比較給力!
            3.那么什么是QPalette?
            QPalette負責控制控件狀態的顏色組-注意是控件狀態。
            那么對一個控件每個狀態的顏色都可以是不一樣的咯
            至于QPalette的詳細功能和使用方法以后需要的時候再看吧
            4.基本的信號鏈接使用例子
            #include <QApplication>
            #include 
            <QPushButton>

            int main(int argc, char *argv[])
            {
                QApplication app(argc, argv);
                QPushButton 
            *button = new QPushButton("Quit");
                
            //! when click button, app exit.
                QObject::connect(button, SIGNAL(clicked()),&app, SLOT(quit()));
                button
            ->show();
                
            return app.exec();
            }
            5.一個復雜點的例子
            #include <QApplication>
            #include 
            <QHBoxLayout>
            #include 
            <QSlider>
            #include 
            <QSpinBox>
            #include 
            <QIcon>

            int main(int argc, char *argv[])
            {
                QApplication app(argc, argv);
                QWidget
            * widget = new QWidget;
                QIcon icon(
            "config.png");
                widget
            ->setWindowIcon(icon);
                widget
            ->setWindowTitle("Using QT");
                        
                QSlider
            * slider = new QSlider(widget);
                slider
            ->setRange(0,99);

                QSpinBox
            * spinbox = new QSpinBox(widget);
                spinbox
            ->setRange(0,99);
                
                widget
            ->show();
                
            return app.exec();
            }
            編譯運行可以看出QWidget中默認的布局管理器是豎直向下排列的
            在QT中可以通過setWindowIcon來設置窗體圖標
            通過setWindowTitle設置窗體標題
            6.加上布局管理器和信號連接的話代碼大致應該是這個樣子
            #include <QApplication>
            #include 
            <QHBoxLayout>
            #include 
            <QSlider>
            #include 
            <QSpinBox>
            #include 
            <QIcon>

            int main(int argc, char *argv[])
            {
                QApplication app(argc, argv);
                QWidget
            * widget = new QWidget;
                QIcon icon(
            "config.png");
                widget
            ->setWindowIcon(icon);
                widget
            ->setWindowTitle("Using QT");

                QSlider
            * slider = new QSlider(widget);
                slider
            ->setRange(0,99);

                QSpinBox
            * spinbox = new QSpinBox(widget);
                spinbox
            ->setRange(0,99);

                QHBoxLayout
            * layout = new QHBoxLayout;
                layout
            ->addWidget(spinbox);
                
            //! adjust slider's direction
                slider->setOrientation(Qt::Horizontal);
                layout
            ->addWidget(slider);

                spinbox
            ->setValue(28);

                
            //! connect signals and slots
                QObject::connect(spinbox, SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));
                QObject::connect(slider,SIGNAL(valueChanged(
            int)),spinbox,SLOT(setValue(int)));

                widget
            ->setLayout(layout);
                widget
            ->show();
                
            return app.exec();
            }
            需要說明的是在這里QSlider,QPinBox控件是互動
            編譯程序并運行界面如下:

            這是關于QT的第六篇筆記
            總結下吧
            QT功能還是很強大貼心的
            比較容易上手
            不過有2點我感覺不大舒服的地方是對這個變量命名格式有點不大喜歡
            比如setValue我喜歡寫成SetValue.
            僅此而已
            posted on 2011-03-16 10:41 ccsdu2009 閱讀(3788) 評論(0)  編輯 收藏 引用 所屬分類: QT編程Python腳本
             
            欧美午夜A∨大片久久| 久久精品国产亚洲av水果派 | 囯产极品美女高潮无套久久久| 青青国产成人久久91网| 久久久这里有精品中文字幕| 91麻豆国产精品91久久久| 久久久精品人妻一区二区三区四| Xx性欧美肥妇精品久久久久久| 亚洲欧美日韩精品久久亚洲区| 91久久婷婷国产综合精品青草 | 国产精品美女久久久久网| 99久久精品国产毛片| 久久久久av无码免费网| 久久综合狠狠色综合伊人| 国产毛片欧美毛片久久久| 国产香蕉97碰碰久久人人| 亚洲AV日韩精品久久久久久| 免费观看久久精彩视频| 亚洲AV无码一区东京热久久| 久久久黄片| 国产AV影片久久久久久| 久久精品无码专区免费东京热| 久久一区二区免费播放| 久久www免费人成看国产片| 青青草原综合久久| 久久久久久狠狠丁香| 久久精品亚洲日本波多野结衣| 久久精品一区二区三区AV| 亚洲国产天堂久久综合| 久久免费国产精品| 久久国产成人午夜aⅴ影院 | 亚洲午夜福利精品久久| 国产精品欧美久久久久无广告| 精品免费tv久久久久久久| 久久精品九九亚洲精品| 久久精品午夜一区二区福利| 久久精品人人做人人爽97| 精品久久久久香蕉网| 久久国产精品-国产精品| 久久91精品国产91久久小草| 99久久久精品|