天天看點

Qt-電腦

用Qt做一個簡單的電腦

用VS2010建立Qt Application,一切預設,項目建立完成之後,輕按兩下ui檔案,在Qt Designed中編輯UI界面

Qt-電腦

主界面為QMainWindow,設定sizePolicy的水準政策和垂直政策為fixed,其他預設

在主界面中添加QToolButton,編輯數字按鈕和指令按鈕,設定button相關屬性,主要包括objectName、geometry、text

objectName:button的名稱

geometry:button的位置和大小,button與布局的位置距離設定geometry的X Y屬性

sizePolicy:button的大小改變政策,包括水準政策和垂直政策。可以設定最大(Max)、最小(Min)、擴充(Expanding主視窗縮放的時候按鈕也可以随視窗大小縮放)、固定(Fixed)、preferred:首選尺寸,參考。關于具體屬性參考Qt文檔,這兒有一篇文章寫的挺好http://blog.csdn.net/ggicci/article/details/8116963

Text:設定button的顯示名稱

在MainWindow中添加Qlabel和QlineEdit,用來顯示輸入表達式和計算結果

為按鈕設定gridlayout,全選button,點選Qt Designed工具欄上面的栅格布局按鈕

為label和lineEdit設定gridlayout,全選,點選Qt Designed工具欄上面的栅格布局按鈕

操作完成之後,儲存關閉Qt Designed,在VS2010中運作,最後界面如上圖所示。

為電腦添加信号和槽操作

//隻做了1 2 3 4 5 6 7 8 9 0 加 減 乘 除 清空 計算
	QObject::connect(calculatorUi.oneToolButton, SIGNAL(clicked()), this, SLOT(oneToolButton_clicked())); 
	QObject::connect(calculatorUi.twoToolButton, SIGNAL(clicked()), this, SLOT(twoToolButton_clicked())); 
	QObject::connect(calculatorUi.threeToolButton, SIGNAL(clicked()), this, SLOT(threeToolButton_clicked()));
	QObject::connect(calculatorUi.fourToolButton, SIGNAL(clicked()), this, SLOT(fourToolButton_clicked())); 
	QObject::connect(calculatorUi.fiveToolButton, SIGNAL(clicked()), this, SLOT(fiveToolButton_clicked())); 
	QObject::connect(calculatorUi.sixToolButton, SIGNAL(clicked()), this, SLOT(sixToolButton_clicked())); 
	QObject::connect(calculatorUi.sevenToolButton, SIGNAL(clicked()), this, SLOT(sevenToolButton_clicked())); 
	QObject::connect(calculatorUi.eightToolButton, SIGNAL(clicked()), this, SLOT(eightToolButton_clicked())); 
	QObject::connect(calculatorUi.nineToolButton, SIGNAL(clicked()), this, SLOT(nineToolButton_clicked())); 
	QObject::connect(calculatorUi.oneZeroToolButton, SIGNAL(clicked()), this, SLOT(oneZeroToolButton_clicked())); 

	QObject::connect(calculatorUi.additionToolButton, SIGNAL(clicked()), this, SLOT(additionToolButton_clicked())); 
	QObject::connect(calculatorUi.subtractionToolButton, SIGNAL(clicked()), this, SLOT(subtractionToolButton_clicked())); 
	QObject::connect(calculatorUi.multiplicationToolButton, SIGNAL(clicked()), this, SLOT(multiplicationToolButton_clicked())); 
	QObject::connect(calculatorUi.divisionToolButton, SIGNAL(clicked()), this, SLOT(divisionToolButton_clicked())); 
	QObject::connect(calculatorUi.pointToolButton, SIGNAL(clicked()), this, SLOT(pointToolButton_clicked())); 
	QObject::connect(calculatorUi.complemetToolButton, SIGNAL(clicked()), this, SLOT(complemetToolButton_clicked())); 
	QObject::connect(calculatorUi.leftbToolButton, SIGNAL(clicked()), this, SLOT(leftbToolButton_clicked())); 
	QObject::connect(calculatorUi.rightbToolButton, SIGNAL(clicked()), this, SLOT(rightbToolButton_clicked())); 

	QObject::connect(calculatorUi.clearToolButton, SIGNAL(clicked()), this, SLOT(clearToolButton_clicked())); 
	QObject::connect(calculatorUi.resultToolButton, SIGNAL(clicked()), this, SLOT(resultToolButton_clicked())); 
	QObject::connect(this, SIGNAL(checkerror()), this, SLOT(clearToolButton_clicked())); 
           

測試運作(部分實作)

Qt-電腦
Qt-電腦

繼續閱讀