Qt的認識與相關問題的解決

一.Qt程序的步驟windows

  1. 編寫源碼app

    a.建立目錄,每個Qt工程都要有一個單獨的目錄函數

    b.編寫入口工具

      QApplication app(argc,argv);//建立應用程序對象編碼

      QLabel  lab("你要寫的內容");//建立標籤對象,此控件專門用來實現文字操作系統

      lab.show();//顯示標籤,幾乎全部的控件默認都是隱藏的設計

      return app.exec();//把程序的運算交給Qt(監控事件,等待用戶操做)3d

      第一句和第四局的格式都是不變的;指針

  2. 生成工程文件:qmake -project     生成目錄名.pro(此文件能夠被Qt創造器打開)code

  3. 生成Makefile文件 qmake 

  4. 編譯的時候語法很是嚴格,錯誤信息也不少

二.查閱幫助文檔

  1. 打開Qt幫助文檔(assistant命令),使用索引,搜索找到對應的控件類或函數,宏,inherits:它的父類有哪些
  2. 頭文件,要注意使用此控件時要包含什麼頭文件,通常狀況下是類名
  3. Properties:具備保護屬性的成員變量。
  4. Public Functions: 具備公開屬性的成員函數,部分功能函數可能在父類中,當須要的成員函數找不到時能夠去父類中找
  5. Reimplemented Public Functions:能夠重寫的成員函數
  6. Public Slots:具備公開屬性的槽函數,首先它具備某些功能的成員函數,但他能夠與信號綁定,不光能夠被信號調用,也能夠被直接調用
  7. Signals:他們是以函數形式存在的,但他們並不實現出來,能夠用emit顯示的觸發
  8. Reimplemented Protected Functions:能夠重寫的具備保護屬性的成員函數
  9. Detailed Description:類的使用注意事項
  10. 其餘:靜態成員,靜態成員函數,相關的宏

三.中文的處理

  1. 因爲歷史緣由,地區,國家,文化的不一樣,所使用的文字編碼是不一樣的。
      英語國家: ASCII,128個字符
      中國大陸:GBK2312(windows下經常使用的字符編碼,每一個漢字2字節)
      港臺地區:BIG5
  2. 統一字符編碼
      國際標準化組織設計出一套全世界通用的字符編碼(Unicode):
      UTF-2:雙字節統一字節集
      UTF-4:四字節統一字符集
      UTF-8:用1~4字節表示一個Unicode字符
      UTF-16:用2~4字節表示一個Unicode字符
      UTF-32:用4字節表示一個Unicode字符

3. 內外有別:
    內部編碼:在Qt程序中全部的控件默認使用的是UTF-16編碼
    外部編碼:操做系統所使用的編碼(ubntu默認使用的是UTF-8編碼)
4. 解決Qt亂碼問題
    Qt4.8默認的是UTF-16編碼,所以必須手動設置後才能正確顯示中文
    Qt5.0以後的默認的是UTF-8編碼
5. 在程序最開始時設計內部編碼
    QTextCodec* code = QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForTr(code);
    QTextCodec::setCodecForLocale(code);
    QTextCodec::setCodecForCStrings(code);

 

四.信號與槽
  信號:就是以函數形式存在的一種信號
  槽:是一種特殊函數,若是不配合信號,能夠看成普通函數使用

  信號和槽函數必須常常鏈接才能協調工做
  connect(負責發送信號的對象指針,信號函數簽名:SIGNAL(函數名及參數),接受信號的對象指針,槽函數的函數簽名:  SLOT(函數名及參數))

  

 



五.自定義信號和槽
  1. 在自定義的類中定義信號和槽函數必定要單獨寫一個頭文件
  2. 自定義的類必需要繼承QObject類
  3. 在類的開頭必需要有宏:Q_OBJECT
  4. 定義信號時前面要加關鍵字,信號以函數形式存在,但不須要實現
    signals:
  5. 定義槽函數時要加public slots:關鍵字,能夠顯示調用,也能夠與信號鏈接,由信號觸發調用
  6. 信號由關鍵字emit觸發, 能夠帶參數也能夠不帶 ,若是想讓信號給槽函數發送數據,他們的參數格式必須同樣

六.控件與容器
組成窗口界面的小工具叫控件,叫QLabel,QTextEdit,QPushButton

容器用來存放控件的類,
QMainwindow:主窗口容器,由標題欄,菜單欄,工具欄,狀態欄組成

 

相關文章
相關標籤/搜索