簡述
在Ubuntu作業系統下使用Qt實作帶界面的簡單電腦,實作加減乘除運算
Ubuntu 16.04 LTS
Qt 4.8.2
界面設計
建立一個桌面應用,使用Qt creator設計界面做如下布局
元件
- 拖放一個QLineEdit
- 4*4排列16個QPushButton
- 修改對應按鈕的值
- 修改主視窗标題為”電腦”
布局
- 4*4按鈕全部選中,進行栅格布局
- 選中4*4按鈕和QLineEdit元件進行垂直布局
- 主視窗進行栅格布局
界面設計完成後如下圖

代碼實作
頭檔案中定義變量
QString showstr,before,after,op;
- showstr 存放界面QLineEdit元件顯示内容
- op 存放目前運算的的操作符(+,-,*,/)
- before存放運算符前的操作數的QString
- after存放運算符後的操作數的QString
頭檔案函數聲明
void process();
void print();
- void process();用于實作計算的具體過程
- void print();控制界面輸出的内容
構造函數初始化
after="";
before="0";
showstr="";
op="";
process()函數定義
将QString類型的操作數轉換為int類型,然後if判斷op類型,進行相對應的運算,計算完成後第二個操作數清空,結果儲存在第一個操作數變量中.
//計算過程
void MainWindow::process()
{
if(op=="")
{
before=after;
}
else if (op=="+")
{
int temp=after.toInt()+before.toInt();
qDebug()<<before.toInt()<<after.toInt();
before=QString::number(temp);
qDebug()<<before.toInt();
}
else if (op=="-")
{
int temp=before.toInt()-after.toInt();
qDebug()<<before.toInt()<<after.toInt();
before=QString::number(temp);
qDebug()<<before.toInt();
}
else if (op=="*")
{
int temp=after.toInt()*before.toInt();
qDebug()<<before.toInt()<<after.toInt();
before=QString::number(temp);
qDebug()<<before.toInt();
}
else if (op=="/")
{
if(after.toInt()==)
{
QMessageBox::about(this,"error","不能除零");
return ;
}
int temp=before.toInt()/after.toInt();
qDebug()<<before.toInt()<<after.toInt();
before=QString::number(temp);
qDebug()<<before.toInt();
}
after="";
}
print()函數定義
//print
void MainWindow::print()
{
ui->lineEdit->setText(showstr);
}
定義槽函數
在UI界面右鍵按鈕在菜單選擇轉到槽,選中clicked()進行定義槽函數
數字按鈕(-)的槽進行如下定義
//按鍵1
void MainWindow::on_pushButton_clicked()
{
after+="1";
showstr+="1";
print();
}
點選按鈕後,操作數進行改變,并且在界面顯示
以此類推定義所有數字按鈕的的槽函數
運算符(加減乘除)的槽函數定義
//+
void MainWindow::on_pushButton_4_clicked()
{
showstr+="+";
print();
qDebug()<<"+";
process();
op="+";
}
//-
void MainWindow::on_pushButton_8_clicked()
{
showstr+="-";
print();
qDebug()<<"-";
process();
op="-";
}
//*
void MainWindow::on_pushButton_12_clicked()
{
showstr+="*";
print();
qDebug()<<"*";
process();
op="*";
}
//\/
void MainWindow::on_pushButton_16_clicked()
{
showstr+="/";
print();
qDebug()<<"/";
process();
op="/";
}
“=”按鈕槽函數
“=”按鈕點選後顯示計算結果,并且初始化變量,準備進行下一次運算
//=
void MainWindow::on_pushButton_15_clicked()
{
showstr+="=";
process();
showstr+=before;
print();
showstr=after=before=op="";
}
“C”清屏按鈕
//C
void MainWindow::on_pushButton_13_clicked()
{
ui->lineEdit->setText("");
}
運作執行個體
啟動後界面
加法運算
減法運算
乘法運算
除法運算
除零錯誤
源代碼
源代碼已上傳,點選下載下傳
(設定資源積分過高不能更改,如需要私信可郵件發送源代碼)