本文共 2674 字,大约阅读时间需要 8 分钟。
刚接触Qt,没有使用QtDesigner来编写UI文件,纯用Visual Studio编写项目。这是一个不错的开始,下面将详细介绍项目的结构和实现。
项目结构包括以下几个文件:
在calculator.cpp中,首先初始化UI界面:
calculator::calculator(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); // 初始化各个UI组件 number_1 = new QLabel("数字1:"); number_2 = new QLabel("数字2:"); numline_1 = new QLineEdit; numline_2 = new QLineEdit; // 输入验证 QRegExp regx("[0-9]+$"); QValidator *validator = new QRegExpValidator(regx); numline_1->setValidator(validator); numline_2->setValidator(validator); // 运算符组 oper = new QButtonGroup; plus = new QRadioButton("+"); minus = new QRadioButton("-"); multiply = new QRadioButton("*"); divide = new QRadioButton("/"); oper->addButton(plus); oper->addButton(minus); oper->addButton(multiply); oper->addButton(divide); oper->setExclusive(true); // 结果显示 resultlabel = new QLabel("计算结果:"); result = new QLineEdit; cal = new QPushButton("计算"); cal->setShortcut(QKeySequence("Enter")); // 布局设置 mainlayout = new QGridLayout(ui.centralWidget); mainlayout->addWidget(number_1, 0, 0); mainlayout->addWidget(numline_1, 0, 1, 1, 3); mainlayout->addWidget(number_2, 1, 0); mainlayout->addWidget(numline_2, 1, 1, 1, 3); mainlayout->addWidget(plus, 2, 0); mainlayout->addWidget(minus, 2, 1); mainlayout->addWidget(multiply, 2, 2); mainlayout->addWidget(divide, 2, 3); mainlayout->addWidget(cal, 3, 0, 1, 4); mainlayout->addWidget(resultlabel, 4, 0); mainlayout->addWidget(result, 4, 1, 1, 3); // 信号和槽连接 connect(cal, SIGNAL(clicked()), this, SLOT(jisuan()));} 在jisuan()方法中,实现了基本的四则运算:
void calculator::jisuan() { QString n1 = numline_1->text(); QString n2 = numline_2->text(); double num1 = n1.toDouble(); double num2 = n2.toDouble(); double res = 0.0; if (plus->isChecked()) { res = num1 + num2; } else if (minus->isChecked()) { res = num1 - num2; } else if (multiply->isChecked()) { res = num1 * num2; } else if (divide->isChecked()) { if (num2 == 0) { result->setText("Error"); return; } res = num1 / num2; } // 格式化结果 QRegExp rx("(\\.){0,1}0+$"); QString res2 = QString("%1").arg(res, 0, 'f', -1).replace(rx, ""); result->setText(res2);} 通过以上实现,可以构建一个简单的四则运算计算器,用户可以通过Visual Studio编写代码,使用Qt框架进行UI和逻辑开发。
转载地址:http://apdq.baihongyu.com/