QT怎么实现二、八、十六进制之间的转换
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要讲解了"QT怎么实现二、八、十六进制之间的转换",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"QT怎么实现二、八、十六进制之间的转换"吧!主
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
本机作为代理服务器
广东pdu服务器电源要多少钱
人群数据库
软件开发听说佷辛苦
我的世界知名空岛服务器
服务器安全 百度经验
携程用数据库
计算机节点国产服务器
网络技术的发展趋势怎样
图片如何插入mysql数据库中
数据库在西部
容城软件开发项目管理
电视bns服务器怎么设置
镇江市网络安全应急服务支撑单位
软件开发任务分配软件
wind数据库能查借壳吗
服务器调试和安装有发展空间吗
软件开发和项目实施的区别
QQ人气软件开发
数据库能存放种子
网络安全如何涂鸦
网络安全歌曲儿童版
网络安全知识普及的文章
金蝶专业版是什么数据库
沌口学软件开发
关于软件开发中的图片
天堂服务器
上海恒温农业信息系统数据库
软件开发和项目实施的区别
软件开发人工成本怎么分摊