用qt写一个进制转换界面
时间: 2024-05-16 08:14:04 浏览: 172
好的,以下是一个简单的进制转换界面示例代码:
```c++
#include <QApplication>
#include <QWidget>
#include <QGridLayout>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
class MainWindow : public QWidget {
public:
MainWindow(QWidget *parent = nullptr) : QWidget(parent) {
// 设置界面标题
setWindowTitle("进制转换器");
// 设置界面布局
QGridLayout *layout = new QGridLayout(this);
layout->setColumnStretch(0, 1);
layout->setColumnStretch(1, 0);
layout->setColumnStretch(2, 1);
// 添加输入框和标签
QLabel *decimalLabel = new QLabel("十进制数:", this);
layout->addWidget(decimalLabel, 0, 0);
decimalEdit = new QLineEdit(this);
decimalEdit->setPlaceholderText("请输入十进制数");
layout->addWidget(decimalEdit, 0, 1);
QLabel *binaryLabel = new QLabel("二进制数:", this);
layout->addWidget(binaryLabel, 1, 0);
binaryEdit = new QLineEdit(this);
binaryEdit->setPlaceholderText("转换结果");
binaryEdit->setReadOnly(true);
layout->addWidget(binaryEdit, 1, 1);
// 添加转换按钮
QPushButton *convertButton = new QPushButton("转换", this);
layout->addWidget(convertButton, 0, 2, 2, 1);
// 连接转换按钮的信号和槽函数
connect(convertButton, &QPushButton::clicked, this, &MainWindow::convert);
}
private slots:
void convert() {
// 获取输入的十进制数
QString decimalStr = decimalEdit->text();
bool ok;
int decimal = decimalStr.toInt(&ok);
if (!ok) {
binaryEdit->setText("非法输入");
return;
}
// 将十进制数转换为二进制数
QString binaryStr = QString::number(decimal, 2);
binaryEdit->setText(binaryStr);
}
private:
QLineEdit *decimalEdit;
QLineEdit *binaryEdit;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
```
这个界面有两个输入框和一个转换按钮。用户输入一个十进制数,点击转换按钮后将其转换为二进制数,并在另一个输入框中显示转换结果。
注意,在转换函数中,我们使用了 `QString::number` 函数将十进制数转换为二进制数。这个函数的第二个参数是进制数,例如,如果要将十进制数转换为八进制数,可以将第二个参数设为 8。
阅读全文