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

黎明的剔透里伸出了你沁清的曖昧

Graphics|EngineDev|GameDev|2D&3D Art

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  60 隨筆 :: 1 文章 :: 18 評論 :: 0 Trackbacks

一、環境配置

     用VS新建一個win32控制臺應用程序,我們假設工程名為:Hello。

 

     選擇工具->選項->項目和解決方案->VC++目錄。

         (1)  選擇“可執行文件”,在里面添加:C:\Qt4.7.0\bin;

         (2)  選擇“包含文件”,在里面添加:C:\Qt4.7.0\include;   C:\Qt4.7.0\include\Qt;   C:\Qt4.7.0\include\QtCore;   C:\Qt4.7.0\include\QtGui

         (3)  選擇“庫文件”,在里面添加:C:\Qt4.7.0\lib;

 

二、開始編程

   1.     選擇菜單上的“QT”選項- >“Launch Designer” ,啟動designer : 放入一個“label”,內容寫為:helloQT。然后保存為Hello.ui,再將它添加到源文件中。

           右擊“Hello.ui”->“屬性”->“自定義生成步驟”:

           命令行:uic.exe Hello.ui -o HelloUi.h

           輸出:HelloUi.h

           附加依賴項:uic.exe; Hello.ui

           然后,點擊“確定”。這時再右擊“Hello.ui”,選擇“編譯”,則會生成HelloUi.h。將它添加到工程中。

    2.   在Hello.cpp中編寫代碼:

    3.   選擇“項目”,“Hello屬性”,“配置屬性”:

           (1)  “常規”:選擇“字符集”為“使用多字節字符集”;

           (2)  “調試”:填寫“環境”值為:PATH=C:\Qt4.7.0\bin;

                         填寫“合并環境”值為:是;

           (3)  “鏈接器”:進入“常規”選項,填寫“附加庫目錄”為:C:\Qt4.7.0\lib;

                            進入“輸入”選項,填寫“附加依賴項”為:qtcore4.lib qtgui4.lib

                           (注意,這兩個庫之間為空格,不能寫逗號)

                                                                                                                                                                                                                                                               

  • 信號和槽
  •     信號signals的聲明是頭文件中進行的(槽的聲明也在頭文件中聲明,同時要在類聲明的開始處加上Q_OBJECT語句,這將告訴編譯器在編譯之前必須用moc工具進行擴展),并且moc    工具會注意不要將信號定義在實現文件中,使用signals關鍵字標示信號聲明區,隨后可聲明自己的信號。

         信號signals沒有public\private\protected等屬性,這點不同于slots。

         信號signals的返回值為void   

         槽slots有public slots、private slots、protected slots (方法)

         信號signals/事件->(驅動)槽slots/方法

     

  • 元對象
  • QT的元對象系統為QT提供了對象間通信的信號與槽機制、實時類型信息、動態屬性系統等方面的功能。

           元對象系統在QT中主要有以下三個部分構成:QObject類、Q_OBJECT宏、元對象編譯器moc

     

       3.vs中QT顯示中文:

          #include <QTextCodec>

         QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));

         QFont font("Times",12,QFont::Normal,FALSE);

         app.setFont(font);

          QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));

         //QFont font("Times",12,QFont::Normal,FALSE);

         //a.setFont(font);

     

        4.QAction類的用法

        1、QAction::QAction ( const QString & text, QObject * parent )

              QAction類的構造函數之一,利用text,parent創建QAction對象。QAction對象一般為菜單中的菜單項,比如 "文件"菜單中"新建"選項就是一個QAction對象,

             上述構造函數中text成員變量       即為菜單項所表示的內容

             用法:QAction *newAction = new QAction(tr("&New"),this);

        2、void QAction::setIcon ( const QIcon & icon )

              該函數可設置菜單項名稱前的圖標

              用法:newAction->setIcon(QIcon(":/images/new.png"));

        3、void QAction::setShortcut ( const QKeySequence & shortcut );

              設置QAction對象執行的快捷鍵

              用法:newAction->setShortcut(tr("Ctrl+N"));

         4、void QAction::setStatusTip ( const QString & statusTip );

               設置當鼠標移動到“動作”上時,狀態欄顯示的提示語。

         5、void QAction::setVisible ( bool );

              設置“動作”顯示與否,當形參為true是,“動作”表示。

         6、void QAction::triggered ( bool checked = false ) [signal]

              此函數為信號,當用戶觸發此“動作”時,此信號發射。例如用戶點擊了菜單中的菜單項等。

              此函數一般用法為:在QObject::connect()函數中作為信號參數,用于觸發“動作”所對應執行的槽函數——實現“動作”的功能函數,例如:“新建”按鈕被用戶按下,

             所需要的功能可能      是新建一個文檔,那么新建一個文檔的動作就在這個槽函數中實現。至于此信號函數中的形參暫時可以忽略。以后會在介紹QObject類中的靜態方法connect()函數時詳細解說。

          7、void QAction::setCheckable ( bool );

             此函數用于設置QAction類中的私有變量: bool checkable ,此屬性用以提供“動作”是否為復選動作,例如Qt Creator中“控件”菜單中的“全屏”菜單項即為復選動作

    菜單

        5  QMainWindow類用法

      1、void QMainWindow::setCentralWidget ( QWidget * widget );

          此方法作用為設置傳入部件為主窗口布局的中心領域部件。傳入部件可為任意的部件或QWidget類的子類部件。對于“部件”這個詞的理解可以理解為某機器上的一個螺絲、一個配件等等,其實部件就是螺絲和某配件的一個抽象感念嘛,他們都叫做部件,但是卻有著不同的作用和形狀。以后會遇到很多類繼承QWidget類的。相信大家都比筆者聰明,或許我是在說些廢話,呵呵。

          舉例:

               在自定義的繼承于QMainWindow的來構造函數里面:

                 QTableWidget *table = new QTableWidget;     //QTableWidget繼承于QWidget類;

                setCentralWidget(table);

         2、void  QMainWindow::setWindowIcon ( const QIcon & icon );

          設置窗口左上角圖標,支持PNG、BMP、GIF、FPEG、PNM、XBM、XPM格式文件。

          一下為幾種GUI應用程序提供資源的方法:

                ①將圖片存入文件,在程序運行時加載

                ②將XPM文件包含在源程序中,因為XPM文件是有效的C++文件

                ③使用Qt的資源機制————此種方式不僅僅支持圖片格式文件,而且支持任何格式的文件

         3、QMenuBar *QMainWindow::menuBar() const;

          此方法返回一個主窗口的菜單欄對象指針。如果在調用此方法時,主窗口不存在菜單欄,則此方法會創建一個空的菜單欄。在Mac應用程序中,如想在多個主窗口之間共享一個菜單欄,則需要使用QMenuBar *menuBar = new QMenuBar(0);形式創建菜單欄,即創建一個無父部件的菜單欄對象。

          這里解釋一下什么叫做父部件,初學一定對這個概念不理解,這里的父部件不是C++中類的繼承關系,而是部件與部件的關系。我也是學習了一段時間才慢慢悟出這里面的道理的。我看的是《C++ GUI Programming with Qt 4》英文原版,本來理解起來就有些障礙,再遇到這樣新的概念詞匯,更是不知其所云。為什么看英文原版書呢,個人覺得國內翻譯的不是很到位,可能在某個地方或關鍵點給我造成誤導,貌似扯遠了。。。即說說父部件是個什么東西,現在為大家打個比方,一張電腦桌由多個部件構成,如桌面,桌子腿,抽屜等等,抽屜上面有抽屜把手,那么抽屜就是抽屜把手的父部件,電腦桌就是抽屜的父部件。相信這樣解釋,大家一定就會理解了。

         4、QToolBar * QMainWindow::addToolBar ( const QString & title );

          此函數為重載函數,其余兩個為已創建了工具欄(QToolBar)對象時,將工具欄對象添加到QMainWindow對象中。下面就會馬上列出這兩個類方法。在調用此方法時,會創建一個QToolBar對象,返回這個對象的指針,并在主窗口頂部工具欄區域中顯示。

        5、void QMainWindow::addToolBar ( Qt::ToolBarArea area, QToolBar * toolbar );

          與上個函數構成重載關系,此函數第二個形參為已定義好的工具欄對象指針,第一個形參工具欄表示的位置,此形參為枚舉型變量。

          工具欄表示位置共4種,即左右上下:

            (1) Qt::LeftToolBarArea      0x1

            (2) Qt::RightToolBarArea     0x2

            (3) Qt::TopToolBarArea       0x4

            (4) Qt::BottomToolBarArea  0x8

        6、void QMainWindow::addToolBar ( QToolBar * toolbar );

          與調用 addToolBar(Qt::TopToolBarArea, toolbar) 方法效果相同,即調用 addToolBar(Qt::TopToolBarArea, toolbar) 方法,工具欄顯示區域默認為主窗口頂部。

        7、QStatusBar *QMainWindow::statusBar() const;

          當主窗口狀態欄不存在時,創建狀態欄,并返回狀態欄對象指針。一般在自定義QMainWindow子類的構造函數時使用,創建狀態欄對象。創建后,添加QLabel對象,以顯示主窗口狀態或菜單欄中按鈕的狀態提示。

    相信通過3、4、5、6、7、QMainWindow類方法的學習,大家應該掌握了創建菜單欄,工具欄和狀態欄的方法。通常的主窗口一般也就需要這些東西了。但要想讓菜單欄,工具欄以及狀態欄能有自己的動作或行為,還需要其他類的配合使用。大家不用急,QMainWindow類簡單介紹完畢之后,會介紹這些相關的類及其使用方法。

        8、void QMainWindow::setWindowModified(bool);

          當此函數形式參數為true時,即設置了WindowModified屬性為true,意思為表明先編輯的文檔有更新,這時,Qt會自動更新標題欄,Mac OS X 系統上在主窗口的關閉按鈕上將出現一個變更的樣式,其他系統或平臺上會在主窗口標題欄的文件名后多顯示一個“*”。

     

    void MainWindow::open()
    {
        QDialog *dialog = new QDialog;
        dialog->setAttribute(Qt::WA_DeleteOnClose);
        dialog->setWindowTitle(tr("Hello, dialog!"));
        dialog->show();

     

    void MainWindow::open()
    {
        QDialog dialog(this);
        dialog.setWindowTitle(tr("Hello, dialog!"));
        dialog.exec();
    }

     

     

    posted on 2015-08-22 14:55 情絕格調(fresmaster) 閱讀(730) 評論(0)  編輯 收藏 引用 所屬分類: Documents
    青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            午夜精品一区二区三区在线视| 亚洲一区二区少妇| 久久亚洲一区二区| 日韩视频免费观看高清在线视频| 久久精品亚洲国产奇米99| 午夜精品亚洲| 欧美激情在线观看| 一本色道久久加勒比精品| 亚洲狼人综合| 亚洲特色特黄| 亚洲理论电影网| 亚洲高清影视| 国产综合色精品一区二区三区| 亚洲淫片在线视频| 亚洲欧美日韩国产一区二区| 乱人伦精品视频在线观看| 欧美一乱一性一交一视频| 亚洲视屏一区| 久久精品国产精品| 一区二区三区高清| 欧美调教vk| 亚洲综合日韩在线| 亚洲黄色免费电影| 国产精品视频自拍| 亚洲欧美在线网| 欧美激情一区二区三区在线视频 | 久久嫩草精品久久久久| 国产在线不卡精品| 校园激情久久| 久久久精品国产99久久精品芒果| 久久精品中文| 久久精品一区蜜桃臀影院 | 亚洲图片欧洲图片av| 久久久久久9999| 亚洲精品欧美精品| 美女网站久久| 亚洲图中文字幕| 亚洲第一区在线观看| 久久久久久夜精品精品免费| 欧美国产高潮xxxx1819| 99热在线精品观看| 国产乱码精品一区二区三区五月婷| 亚洲欧美在线一区二区| 美女主播精品视频一二三四| 亚洲一级高清| 国产视频观看一区| 欧美韩日亚洲| 欧美日本中文| 欧美午夜精品一区| 欧美日本乱大交xxxxx| 国产午夜亚洲精品不卡| 欧美在线观看一区二区三区| 91久久国产综合久久| 日韩视频―中文字幕| 国产精品视频免费观看| 亚洲综合日本| 久久国产手机看片| 在线亚洲欧美专区二区| 亚洲国产精品精华液2区45| 免费不卡在线观看av| 欧美中文字幕视频在线观看| 亚洲视频在线观看三级| 韩日午夜在线资源一区二区| 激情文学综合丁香| 亚洲精品久久久久久久久久久久久 | 欧美视频日韩视频| 欧美精品日韩三级| 国产精品国产精品国产专区不蜜| 欧美日韩国产一级| 亚洲第一毛片| 亚洲图片激情小说| 久久精品一本| 亚洲淫性视频| 欧美在线黄色| 久久久久亚洲综合| 欧美日韩午夜在线视频| 欧美激情综合在线| 欧美成人综合一区| 国产一区二区三区自拍| 久久久天天操| 老司机一区二区三区| 狠狠色狠狠色综合日日五| 亚洲另类视频| 亚洲男人第一网站| 一本久道久久综合婷婷鲸鱼| 欧美中文在线免费| 久久国内精品自在自线400部| 日韩一区二区精品视频| 欧美日韩国产免费| 夜夜嗨av一区二区三区免费区| 欧美成人激情视频| 在线观看三级视频欧美| 日韩视频精品| 欧美午夜片在线观看| 亚洲视频视频在线| 亚洲精品日产精品乱码不卡| 欧美视频中文一区二区三区在线观看| 亚洲精品资源| 久久综合一区二区| 欧美黄色一区二区| 亚洲一区二区三区色| 久久美女性网| 欧美亚洲一区三区| 国模精品一区二区三区色天香| 午夜精品久久久久久久| 亚洲欧美日韩一区二区三区在线| 欧美成人免费小视频| 亚洲美女毛片| 久久成人一区| 国产欧美日韩视频在线观看| 久久视频在线看| 国产精品黄视频| 狂野欧美性猛交xxxx巴西| 欧美在线观看日本一区| 99精品国产一区二区青青牛奶| 在线视频观看日韩| 久久国内精品自在自线400部| 一区二区三区自拍| 亚洲综合视频网| 亚洲观看高清完整版在线观看| 欧美激情无毛| 欧美色图一区二区三区| 欧美11—12娇小xxxx| 国产精品系列在线播放| 久久免费精品日本久久中文字幕| 欧美激情综合五月色丁香小说| 亚洲欧洲精品一区二区| 黄色成人在线免费| 午夜精品久久久久久久99樱桃| 男男成人高潮片免费网站| 亚洲精选91| 毛片av中文字幕一区二区| 久久免费视频网| 国产精品女同互慰在线看| 欧美国产视频日韩| 亚洲精选中文字幕| 欧美国产精品一区| 欧美激情片在线观看| 国产一区二区成人| 久久国产精品久久久久久| 亚洲欧美日韩中文播放| 欧美伊人久久| 模特精品在线| 最近看过的日韩成人| 久久激情婷婷| 中文一区二区| 亚洲剧情一区二区| 亚洲欧美成人网| 国产精品久久久爽爽爽麻豆色哟哟| 久久久久五月天| 亚洲精品中文字幕女同| 亚洲国产精品va在线看黑人动漫| 久久成人av少妇免费| 又紧又大又爽精品一区二区| 国产精品久久久久久久久免费樱桃| 亚洲欧美日韩网| 亚洲视频一区在线| 久久在线观看视频| 久久男女视频| 久久久久99精品国产片| 狠狠久久婷婷| 国内外成人免费激情在线视频| 国产精品区二区三区日本 | 欧美私人啪啪vps| 欧美一区免费视频| 一区二区三区四区五区精品视频| 精品不卡在线| 国产真实久久| 亚洲精品在线电影| 国产综合视频在线观看| 国产一区二区观看| 亚洲精品国产系列| 欧美国产激情| 亚洲人成欧美中文字幕| 麻豆精品精华液| 亚洲一区精品电影| 欧美在线视频观看| 欧美日韩在线另类| 在线亚洲一区| 香蕉久久夜色精品国产| 欧美亚洲综合久久| 伊人久久大香线蕉av超碰演员| 欧美大片免费| 午夜日韩视频| 91久久精品日日躁夜夜躁欧美| 亚洲女人天堂av| 亚洲国产日韩在线| 国产精品国产三级国产专播精品人 | 欧美激情一区二区三区高清视频| 99国产一区| 国际精品欧美精品| 欧美亚州韩日在线看免费版国语版| 久久久久一区二区三区四区| 亚洲美女黄网| 亚洲国产成人porn| 久久香蕉国产线看观看网| 午夜精品亚洲| 亚洲影音先锋| 一区二区三区高清不卡| 亚洲人成网站精品片在线观看|