• <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 閱讀(3800) 評論(0)  編輯 收藏 引用 所屬分類: QT編程Python腳本
             
            久久精品免费一区二区| 日本福利片国产午夜久久| 91麻精品国产91久久久久| 久久久青草久久久青草| 欧美一区二区精品久久| 久久精品无码一区二区app| 久久精品国产亚洲精品| 久久se精品一区二区影院 | 久久中文字幕视频、最近更新| 国产高潮国产高潮久久久91| 日韩中文久久| 久久人人爽人人爽人人片AV不| 日韩亚洲欧美久久久www综合网| 久久久久人妻一区精品| 久久久久人妻一区精品色| 国产亚州精品女人久久久久久 | 91久久成人免费| 亚洲综合日韩久久成人AV| 青青草原1769久久免费播放 | 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 欧美色综合久久久久久| 久久综合香蕉国产蜜臀AV| 国产亚洲美女精品久久久| 久久久久AV综合网成人| 香蕉99久久国产综合精品宅男自 | 久久久久综合中文字幕 | 欧美激情精品久久久久久| 国产国产成人精品久久| yy6080久久| 亚洲欧洲久久久精品| 狠狠色综合久久久久尤物| 国产精品一区二区久久| 亚洲国产欧洲综合997久久| 日韩va亚洲va欧美va久久| 99久久精品九九亚洲精品| 久久精品成人免费网站| 国产精品久久久久久影院| 国产V综合V亚洲欧美久久| 狠狠色婷婷久久综合频道日韩 | 久久精品国产精品亚洲下载| 国产精品成人99久久久久91gav|