您好,登錄后才能下訂單哦!
在這個(gè)示例中,我們將創(chuàng)建一個(gè)簡單的C++程序,該程序使用控件組合來實(shí)現(xiàn)一個(gè)基本的計(jì)算器功能。我們將使用以下控件:
首先,我們需要包含必要的頭文件并創(chuàng)建一個(gè)主窗口類,該類繼承自QWidget
。
#include <QApplication>
#include <QWidget>
#include <QLineEdit>
#include <QComboBox>
#include <QPushButton>
#include <QLabel>
#include <QHBoxLayout>
#include <QVBoxLayout>
class Calculator : public QWidget {
Q_OBJECT
public:
Calculator();
};
接下來,我們需要實(shí)現(xiàn)Calculator
類的構(gòu)造函數(shù)。在這個(gè)構(gòu)造函數(shù)中,我們將創(chuàng)建所需的控件并設(shè)置布局。
Calculator::Calculator() {
// 創(chuàng)建控件
QLineEdit *number1 = new QLineEdit;
QLineEdit *number2 = new QLineEdit;
QComboBox *operatorBox = new QComboBox;
operatorBox->addItems({"+", "-", "*", "/"});
QPushButton *calculateButton = new QPushButton("Calculate");
QLabel *resultLabel = new QLabel;
// 設(shè)置布局
QHBoxLayout *inputLayout = new QHBoxLayout;
inputLayout->addWidget(number1);
inputLayout->addWidget(operatorBox);
inputLayout->addWidget(number2);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(inputLayout);
mainLayout->addWidget(calculateButton);
mainLayout->addWidget(resultLabel);
setLayout(mainLayout);
// 連接信號(hào)和槽
connect(calculateButton, &QPushButton::clicked, [=]() {
double num1 = number1->text().toDouble();
double num2 = number2->text().toDouble();
QString op = operatorBox->currentText();
double result = 0;
if (op == "+") {
result = num1 + num2;
} else if (op == "-") {
result = num1 - num2;
} else if (op == "*") {
result = num1 * num2;
} else if (op == "/") {
if (num2 != 0) {
result = num1 / num2;
} else {
resultLabel->setText("Error: Division by zero");
return;
}
}
resultLabel->setText(QString::number(result));
});
}
最后,我們需要實(shí)現(xiàn)main
函數(shù)來運(yùn)行應(yīng)用程序。
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
Calculator calculator;
calculator.show();
return app.exec();
}
這個(gè)簡單的C++程序使用Qt框架實(shí)現(xiàn)了一個(gè)基本的計(jì)算器功能。用戶可以在文本輸入框中輸入數(shù)字,從下拉列表中選擇操作符,然后點(diǎn)擊“Calculate”按鈕來計(jì)算結(jié)果。結(jié)果將顯示在標(biāo)簽中。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。