天天看點

基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

簡述

在Ubuntu作業系統下使用Qt實作帶界面的簡單電腦,實作加減乘除運算

Ubuntu 16.04 LTS

Qt 4.8.2

界面設計

建立一個桌面應用,使用Qt creator設計界面做如下布局

元件

  • 拖放一個QLineEdit
  • 4*4排列16個QPushButton
  • 修改對應按鈕的值
  • 修改主視窗标題為”電腦”

布局

  • 4*4按鈕全部選中,進行栅格布局
  • 選中4*4按鈕和QLineEdit元件進行垂直布局
  • 主視窗進行栅格布局

界面設計完成後如下圖

基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

代碼實作

頭檔案中定義變量

QString showstr,before,after,op;
           
  • showstr 存放界面QLineEdit元件顯示内容
  • op 存放目前運算的的操作符(+,-,*,/)
  • before存放運算符前的操作數的QString
  • after存放運算符後的操作數的QString

頭檔案函數聲明

void process();
    void print();
           
  • void process();用于實作計算的具體過程
  • void print();控制界面輸出的内容
基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

構造函數初始化

after="";
    before="0";
    showstr="";
    op="";
           
基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

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()進行定義槽函數

基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體
數字按鈕(-)的槽進行如下定義

//按鍵1
void MainWindow::on_pushButton_clicked()
{
    after+="1";
    showstr+="1";
    print();
}
           

點選按鈕後,操作數進行改變,并且在界面顯示

基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

以此類推定義所有數字按鈕的的槽函數

運算符(加減乘除)的槽函數定義

//+
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="/";
}
           
基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

“=”按鈕槽函數

“=”按鈕點選後顯示計算結果,并且初始化變量,準備進行下一次運算

//=
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("");
}
           

運作執行個體

啟動後界面

基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

加法運算

基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

減法運算

基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

乘法運算

基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

除法運算

基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

除零錯誤

基于Ubuntu的電腦Qt程式設計簡述界面設計代碼實作運作執行個體

源代碼

源代碼已上傳,點選下載下傳

(設定資源積分過高不能更改,如需要私信可郵件發送源代碼)

繼續閱讀