Qt小案例——进制转换

简介: Qt小案例——进制转换

界面展示



项目链接


法1:https://mp.csdn.net/console/upDetailed


法2:https://download.csdn.net/download/weixin_45525272/16660293


项目构成


页面设计



1. QString::number(num,x)法


widget.h


#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
    Q_OBJECT
public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
private slots:
    void on_btnCal_clicked();  //计算 按键单击响应
    void on_btnDec_clicked();   //十进制转换为其他进制
    void on_btnBin_clicked();   //二进制转换为其他进制
    void on_btnHex_clicked();   //十六进制转换为其他进制
private:
    Ui::Widget *ui;
};
#endif // WIDGET_H


widget.cpp


#include "widget.h"
#include "ui_widget.h"
#include    <QString>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}
Widget::~Widget()
{
    delete ui;
}
void Widget::on_btnDec_clicked()
{ //读取十进制数,转换为其他进制
    int val=ui->editDec->text().toInt();//读取十进制数
    QString str=QString::number(val,16);// 显示为16进制 的字符串
    str=str.toUpper(); //转换为全大写字母
    ui->editHex->setText(str);//显示16进制字符串
    str=QString::number(val,2);// 显示2进制的字符串
    ui->editBin->setText(str);//显示二进制字符串
}
void Widget::on_btnBin_clicked()
{ //读取二进制数,转换为其他进制的数
    bool ok;
    int val=ui->editBin->text().toInt(&ok,2);//以二进制数读入
    QString str=QString::number(val,10);//数字显示为10进制字符串
    ui->editDec->setText(str);//显示10进制数字符串
    str=QString::number(val,16);//显示为十六进制字符串
    str=str.toUpper(); //全大写字母
    ui->editHex->setText(str);//显示十六进制字符串
}
void Widget::on_btnHex_clicked()
{//读取16进制数,转换为其他进制的数
    bool ok;
    int val=ui->editHex->text().toInt(&ok,16);//以十六进制数读入
    QString str=QString::number(val,10);// 显示为10进制字符串
    ui->editDec->setText(str);//显示为10进制字符串
    str=QString::number(val,2);// 显示二进制字符串
    ui->editBin->setText(str);//显示二进制字符串
}


2. 使用spinbox


spinbox显示数据可以设置进制显示的属性



widget.h


#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
    Q_OBJECT
public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
private slots:
    void on_btnCal_clicked(); //计算按键 clicked()响应
    void on_btnDec_clicked();//读十进制数再用其他进制显示 的按键的 clicked()响应
    void on_btnBin_clicked();//读二进制数再用其他进制显示 的按键的 clicked()响应
    void on_btnHex_clicked();//读十六进制数再用其他进制显示 的按键的 clicked()响应
private:
    Ui::Widget *ui;
};
#endif // WIDGET_H


widget.cpp


#include    "widget.h"
#include    "ui_widget.h"
#include    <QString>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
//“数量”和“单价”两个SpinBox的valueChanged()信号与on_btnCal_clicked()槽关联
    QObject::connect(ui->spinNum,SIGNAL(valueChanged(int)),this,SLOT(on_btnCal_clicked()));  //
    QObject::connect(ui->spinPrice,SIGNAL(valueChanged(double)),this,SLOT(on_btnCal_clicked()));
    QObject::connect(ui->spinDec,SIGNAL(valueChanged(int)),
                     this,SLOT(on_btnDec_clicked()));//spinDec 十进制显示的SpinBox
    QObject::connect(ui->spinBin,SIGNAL(valueChanged(int)),
                     this,SLOT(on_btnBin_clicked()));//spinBin 二进制显示的SpinBox
    QObject::connect(ui->spinHex,SIGNAL(valueChanged(int)),
                     this,SLOT(on_btnHex_clicked()));//spinHex 十六进制显示的SpinBox
}
Widget::~Widget()
{
    delete ui;
}
void Widget::on_btnCal_clicked()
{ //计算按键
    int num=ui->spinNum->value(); //读取数量,直接是整数
    float price=ui->spinPrice->value();//读取单价,直接是浮点数
    float total=num*price;//相乘计算
    ui->spinTotal->setValue(total); //直接显示浮点数
}
void Widget::on_btnDec_clicked()
{ //读取十进制,以其他进制显示
    int val;
    val=ui->spinDec->value();//读取十进制数
    ui->spinBin->setValue(val); //设置数值即可,自动以二进制显示
    ui->spinHex->setValue(val); //设置数值即可,自动以十六进制显示
}
void Widget::on_btnBin_clicked()
{ //读取二进制,以其他进制显示
    int val=ui->spinBin->value();//读取spinBin里的二进制数,得到整数
    ui->spinDec->setValue(val);//设置数值即可,自动以十进制显示
    ui->spinHex->setValue(val);//设置数值即可,自动以十六进制显示
}
void Widget::on_btnHex_clicked()
{ //读取十六进制,以其他进制显示
    int val;
    val=ui->spinHex->value();//读取 spinHex 里的十六进制数,得到整数
    ui->spinDec->setValue(val);//设置数值即可,自动以十进制显示
    ui->spinBin->setValue(val);//设置数值即可,自动以二进制显示
}
相关文章
|
2月前
|
IDE 开发工具 C++
QT案例IDE编写 -- 创建项目
QT案例IDE编写 -- 创建项目
24 0
|
2月前
|
数据挖掘 C++
QT基础入门——项目案例(七)
QT基础入门——项目案例(七)
96 0
QT基础入门——项目案例(七)
|
5月前
|
设计模式 容器
34 QT - 聊天案例
34 QT - 聊天案例
59 0
|
2月前
|
编解码 IDE 开发工具
QT案例IDE编写 -- 另存为操作及编辑操作
QT案例IDE编写 -- 另存为操作及编辑操作
16 0
|
2月前
|
存储 自然语言处理
QT案例词典 -- 存储内容及遍历
QT案例词典 -- 存储内容及遍历
12 1
|
2月前
|
自然语言处理
QT案例词典 -- 释放堆区空间及查询单词
QT案例词典 -- 释放堆区空间及查询单词
17 1
|
2月前
|
编解码 IDE 开发工具
QT案例IDE编写 -- 通过枚举实现编码切换
QT案例IDE编写 -- 通过枚举实现编码切换
13 0
|
2月前
|
IDE 开发工具 C语言
QT案例IDE编写 -- 代码编写
QT案例IDE编写 -- 代码编写
21 0
|
2月前
|
IDE 开发工具 C语言
QT案例IDE编写 -- 编译操作
QT案例IDE编写 -- 编译操作
15 0
|
2月前
|
IDE 开发工具
QT案例IDE编写 -- 新建和保存文件及退出程序
QT案例IDE编写 -- 新建和保存文件及退出程序
23 0

推荐镜像

更多