QT學習第8課:QT計算器界面實現


聲明:此文章僅是個人在學習狄泰QT課程所做的筆記,文章中包含狄泰資料的,一切版權歸狄泰軟件所有!  

  

  第8課是來做一個計算器界面,只是一個界面顯示。不過也是挺興奮的,以前一直對着黑框框,現在終於到界面了。

  界面如下:

  

  在設計這個計算器的時候,需要有QLineEdit組件。

  

    -QLineEdit用於接受用戶輸入

    -QLineEdit能夠獲取用戶輸出的字符串

    -QLineEdit是功能性組件,需要父組件作為容器

    -QLineEdit能夠在父組件中進行定位

  

1 QWidget w;//生成QWidget對象,頂級組件
2 QLineEdit le(&w);//生成QLineEdit對象,其父組件為QWidget
3 
4 le.SetAlignment(Qt::AlingnRight);//設置顯示字符串向右邊對齊
5 le.move(10,10);//移動到坐標10,10
6 le.resize(240, 30);//設置大小width=240,height=30

 

  界面設計圖如下:

  

    -定義組件間的間距

      Space = 10px

    -定義按鈕組件大小

      Width = 40px, Height = 40px

    -定義文本框組件大小

      Width = 5 * 40px + 4*10px, Height = 30px

 

  設計與實現:

    -計算器程序不需要最大化和最小化按鈕

    -計算器程序的窗口應該是固定化大小

    -文本框不能直接輸入字符

 

  小結:

    -GUI應用程序開發應該前必須先進行界面設計

    -GUI應用程序界面需要考慮各個細節

      -界面決定最終用戶的體驗

      -界面細節是GUI應用程序品質的重要體現

    -QT庫有能力實現各種GUI應用程序需求

    -QT幫助文檔的使用對於開發是非常重要的。

 

  代碼實例:

 1 /*加入QT頭文件,編譯環境QT5.8*/
 2 #include <QApplication>
 3 #include <QWidget>
 4 #include <QLineEdit>
 5 #include <QPushButton>
 6 
 7 
 8 int main(int argc, char *argv[])
 9 {
10     QApplication a(argc, argv); //初學還不太懂
11     QWidget* w = new QWidget(NULL, Qt::WindowCloseButtonHint);//定義一個窗口對象,並配置窗口類型
12     QLineEdit* le = new QLineEdit(w);//定義一個對話框對象
13     QPushButton* button[20] = {0};//定義一個對象數組,包括有20個按鍵
14 
15     //按鍵的內容數組
16     const char* btnText[20]=
17     {
18       "7", "8", "9", "+", "(",
19       "4", "5", "6", "-", ")",
20       "1", "2", "3", "*", "<-",
21       "0", ".", "=", "/", "C",
22 
23     };
24 
25     int ret = 0;
26 
27     le->move(10, 10);       //設置對話框對象位置於坐標10,10的位置
28     le->resize(240, 30);    //設置對話框大小240,30
29     le->setReadOnly(true);  //配置對話框不能輸入
30 
31     /*實現20個按鍵的排列及對按鍵內容的賦值*/
32     for(int i=0; i<4; i++)
33     {
34         for(int j=0; j<5; j++)
35         {
36             button[i*5 + j] = new QPushButton(w);//創建20個按鍵
37             button[i*5 + j]->resize(40, 40);//按鍵大小為40*40
38             button[i*5 + j]->move(10 + (10 + 40) * j,50 + ( 10 + 40)* i);//按鍵行和列間距
39             button[i*5 + j]->setText(btnText[i*5 + j]);//按鍵的字面值賦值
40         }
41     }
42 
43 
44 
45     w->show();       //顯示窗口
46     w->setFixedSize(w->width(), w->height());//配置窗口大小
47 
48     return a.exec();//進入事件循環
49 
50     delete w;       //釋放堆空間
51     delete le;
52 
53     return ret;
54 }

  實例效果圖如下:

  

  當然現在只是一個界面,還得學會后面的知識才能實現這功能。一天進步一點。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM