用Qt做一個簡單的電腦
用VS2010建立Qt Application,一切預設,項目建立完成之後,輕按兩下ui檔案,在Qt Designed中編輯UI界面
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZD9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVP9cnT3lkeOVTRq1ENNpnW1Z0VlZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TN2IjMwQTNwEDOwEDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
主界面為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()));
測試運作(部分實作)