聲明:此文章僅是個人在學習狄泰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 }
實例效果圖如下:
當然現在只是一個界面,還得學會后面的知識才能實現這功能。一天進步一點。