• <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 閱讀(3812) 評論(0)  編輯 收藏 引用 所屬分類: QT編程Python腳本
             
            久久久久久国产精品无码下载 | 日韩欧美亚洲国产精品字幕久久久 | 久久亚洲sm情趣捆绑调教| 中文字幕无码久久精品青草| 亚洲欧美一区二区三区久久| 久久九九久精品国产免费直播| 久久久精品人妻一区二区三区蜜桃 | 亚洲欧洲久久久精品| 97久久国产露脸精品国产| 久久国产精品久久| 香蕉久久夜色精品国产尤物| 99久久99久久| 亚洲狠狠婷婷综合久久久久 | 亚洲AV成人无码久久精品老人| 美女写真久久影院| 国内精品久久久久影院优| 尹人香蕉久久99天天拍| 99久久亚洲综合精品网站| 色婷婷久久综合中文久久蜜桃av| 久久一本综合| 中文字幕精品无码久久久久久3D日动漫 | 色综合久久久久| 99久久国产热无码精品免费| 久久亚洲国产精品成人AV秋霞| 亚洲国产成人精品91久久久| 精品久久久久久国产三级| 97久久天天综合色天天综合色hd| 久久精品国产亚洲AV香蕉| 午夜久久久久久禁播电影| 香蕉久久av一区二区三区| 国产99久久精品一区二区| AA级片免费看视频久久| 欧美亚洲另类久久综合婷婷| 国产精品一区二区久久精品涩爱| 久久99热这里只频精品6| 看久久久久久a级毛片| 久久久久久久尹人综合网亚洲| 精品久久久久久无码免费| 久久w5ww成w人免费| 久久亚洲电影| 狠狠色婷婷综合天天久久丁香 |