千家信息网

QT怎么实现二、八、十六进制之间的转换

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要讲解了"QT怎么实现二、八、十六进制之间的转换",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"QT怎么实现二、八、十六进制之间的转换"吧!主
千家信息网最后更新 2025年11月07日QT怎么实现二、八、十六进制之间的转换

这篇文章主要讲解了"QT怎么实现二、八、十六进制之间的转换",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"QT怎么实现二、八、十六进制之间的转换"吧!

主要使用QT中的三个方法。

  • 第一个是QString::number(int n, int base = 10);

  • 第二个是QString::setNum(short n, int base = 10);

  • 第三个是int QString::toInt(bool *ok = nullptr, int base = 10) const

这三个方法默认值都是十进制。

先上效果图,最后会附上源码:

接下来开始代码实现:

首先打开QT->新建文件或项目,然后跟着图中标注进行下一步

文件名和路径自己设置就可。

一直点下一步;

一直点下一步。创建成功先点绿色箭头运行一下。

接着重头戏来了!!!!

如图所示,同时还会在.cpp文件中添加函数定义:

所要实现的功能是,当点击对应"转换为其他进制"的按钮时,获取对应输入框的内容,然后把内容转换为对应进制。

主要hao

//QString::number()和setNum()都可以转换void MainWindow::on_btn1_clicked(){//十进制转为其他进制    QString str = ui->shi->text();    int value = str.toInt();//十进制,toInt()默认是10进制数     str = str.setNum(value,2);//转为二进制    ui->er->setText(str);     str = str.setNum(value,16).toUpper();//转为十六进制    ui->shiliu->setText(QString("0x%1").arg(str));     str = str.setNum(value,8);//转为八进制    ui->ba->setText(str);} void MainWindow::on_btn2_clicked(){//二进制转为其他进制    QString str = ui->er->text();//二进制    bool ok;    int value = str.toInt(&ok, 2);//以二进制数读入,读取成功ok=true;    qDebug() << "ok=" << ok;     str = QString::number(value,10);//转为十进制    ui->shi->setText(str);     str = QString::number(value,16).toUpper();//转为十六进制    ui->shiliu->setText(QString("0x%1").arg(str));     str = QString::number(value,8);//转为八进制    ui->ba->setText(str);} void MainWindow::on_btn3_clicked(){//十六进制转为其他进制    QString str = ui->shiliu->text();//十六进制    bool ok;    int value = str.toInt(&ok, 16);//以十六进制数读入     str = QString::number(value,10);//转为十进制    ui->shi->setText(str);     str = str.setNum(value,2);//转为二进制    ui->er->setText(str);     str = QString::number(value,8);//转为八进制    ui->ba->setText(str);} void MainWindow::on_btn4_clicked(){//八进制转为其他进制    QString str = ui->ba->text();//八进制    bool ok;    int value = str.toInt(&ok, 8);//以八进制数读入     str = QString::number(value,10);//转为十进制    ui->shi->setText(str);     str = str.setNum(value,2);//转为二进制    ui->er->setText(str);     str = QString::number(value,16).toUpper();//转为十六进制    ui->shiliu->setText(QString("0x%1").arg(str));}

好啦,到这里,代码就结束啦,是不是感觉很简单?!

最后附上源码,亲测可运行,如果你在运行时,出现问题,可以留言。

.pro 文件源码

QT       += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 # The following define makes your compiler emit warnings if you use# any Qt feature that has been marked deprecated (the exact warnings# depend on your compiler). Please consult the documentation of the# deprecated API in order to know how to port your code away from it.DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if it uses deprecated APIs.# In order to do so, uncomment the following line.# You can also select to disable deprecated APIs only up to a certain version of Qt.#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \    main.cpp \    mainwindow.cpp HEADERS += \    mainwindow.h FORMS += \    mainwindow.ui # Default rules for deployment.qnx: target.path = /tmp/$${TARGET}/binelse: unix:!android: target.path = /opt/$${TARGET}/bin!isEmpty(target.path): INSTALLS += target

头文件.h源码

#ifndef MAINWINDOW_H#define MAINWINDOW_H #include  QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACE class MainWindow : public QMainWindow{    Q_OBJECT public:    MainWindow(QWidget *parent = nullptr);    ~MainWindow(); private slots:     void on_btn1_clicked();     void on_btn2_clicked();     void on_btn3_clicked();     void on_btn4_clicked(); private:    Ui::MainWindow *ui;};#endif // MAINWINDOW_H

main.cpp源码

#include "mainwindow.h" #include  int main(int argc, char *argv[]){    QApplication a(argc, argv);    MainWindow w;    w.show();    return a.exec();}

.cpp源码

#include "mainwindow.h"#include "ui_mainwindow.h"#include  MainWindow::MainWindow(QWidget *parent)    : QMainWindow(parent)    , ui(new Ui::MainWindow){    ui->setupUi(this);    this->setWindowTitle("各种进制之间相互转换");} MainWindow::~MainWindow(){    delete ui;} //QString::number()和setNum()都可以转换void MainWindow::on_btn1_clicked(){//十进制转为其他进制    QString str = ui->shi->text();    int value = str.toInt();//十进制,toInt()默认是10进制数     str = str.setNum(value,2);//转为二进制    ui->er->setText(str);     str = str.setNum(value,16).toUpper();//转为十六进制    ui->shiliu->setText(QString("0x%1").arg(str));     str = str.setNum(value,8);//转为八进制    ui->ba->setText(str);} void MainWindow::on_btn2_clicked(){//二进制转为其他进制    QString str = ui->er->text();//二进制    bool ok;    int value = str.toInt(&ok, 2);//以二进制数读入,读取成功ok=true;    qDebug() << "ok=" << ok;     str = QString::number(value,10);//转为十进制    ui->shi->setText(str);     str = QString::number(value,16).toUpper();//转为十六进制    ui->shiliu->setText(QString("0x%1").arg(str));     str = QString::number(value,8);//转为八进制    ui->ba->setText(str);} void MainWindow::on_btn3_clicked(){//十六进制转为其他进制    QString str = ui->shiliu->text();//十六进制    bool ok;    int value = str.toInt(&ok, 16);//以十六进制数读入     str = QString::number(value,10);//转为十进制    ui->shi->setText(str);     str = str.setNum(value,2);//转为二进制    ui->er->setText(str);     str = QString::number(value,8);//转为八进制    ui->ba->setText(str);} void MainWindow::on_btn4_clicked(){//八进制转为其他进制    QString str = ui->ba->text();//八进制    bool ok;    int value = str.toInt(&ok, 8);//以八进制数读入     str = QString::number(value,10);//转为十进制    ui->shi->setText(str);     str = str.setNum(value,2);//转为二进制    ui->er->setText(str);     str = QString::number(value,16).toUpper();//转为十六进制    ui->shiliu->setText(QString("0x%1").arg(str));}

运行后的界面如下:

感谢各位的阅读,以上就是"QT怎么实现二、八、十六进制之间的转换"的内容了,经过本文的学习后,相信大家对QT怎么实现二、八、十六进制之间的转换这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

十六进制 进制 二进制 八进制 十进制 十进 源码 之间 文件 内容 运行 成功 三个 学习 代码 方法 跟着 问题 接下来 函数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江北区技术刀片服务器售后服务 微信总部数据库能查到多久的记录 软件开发年纪大了如何面临失业 国家网络安全人才创新基地 爷爷奶奶网络安全宣传 赣州软件开发培训 服务器被踢出去是什么意思 软件开发的后台 通州旧服务器回收公司 数据库密码采用什么加密 辽宁招聘网络安全渗透工程师 长春定制化国产服务器 捡乐网络技术 保密局 网络安全法总结 中国地图版网络技术应用 安塞分局网络安全大检查 软件开发保证金比例 四川crm软件开发公司 小学网络安全公益宣传 电脑修改个性化的软件开发 中科可控服务器管理口地址 网络安全专业课程好学吗 网络安全研究生课程 数据库自然连接怎么打出来 民警联合网络安全检查 烽火台软件开发 传说对决为什么会无法连接服务器 那时花开吉他谱软件开发 网络监控需要用服务器吗 江苏ukey提示连接服务器
0