QT怎么实现二、八、十六进制之间的转换
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"QT怎么实现二、八、十六进制之间的转换",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"QT怎么实现二、八、十六进制之间的转换"吧!主
千家信息网最后更新 2026年10月31日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 #includeQT_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" #includeint main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}
.cpp源码
#include "mainwindow.h"#include "ui_mainwindow.h"#includeMainWindow::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安全错误
数据库的锁怎样保障安全
智能科技公司是互联网公司吗
互联网巨头反垄断金融科技
科技类互联网
金融科技与互联网金融
互联网医疗科技
期待互联网科技
嘟嘟瓜互联网科技
鑫亿盛互联网科技
朗涯互联网科技
奇士达互联网科技
郑州华宇互联网科技
深圳前海聚择互联网科技有限公司
互联网科技创新服务
互联网科技扶贫时间
朱啸虎曾投资哪些互联网科技企业
2021互联网科技公司排名
互联网安防科技感
35岁以上互联网科技行业
科技互联网专业务虚会材料
知域互联网科技有限公司官网
互联网科技图片
互联网科技保险
互联网与科技金融数据
狮子座互联网科技
互联网科技公司怎么样
上海创道互联网络科技有限公司
扫呗互联网科技有限公司
抖集互联网科技技术咨询
唐山双旺合互联网科技产业园
网互联网络科技