QT学习笔记

关于QT常用的函数和方法记录(个人学习)

1、数据类型的转换

//QByteArray 转QSting 
QByteArray bytes;
QSting str = QString::fromUtf8(bytes);
QString str = QString::fromLocal8Bit(bytes);
	
//QSting 转 QByteArray 
QSting str;
QByteArray bytes = str.toUtf8();
	
//将Qstring类型转换成char
qDebug("本地IP:%s",qPrintable(a));
		
//将Qstring类型转换成char *
QString str = "time:" + str0;
QByteArray ba = str.toLatin1();
char *ptr = ba.data();
	
//char* 转 QString
char* c_char = "world";
QString qstr = QString(QLatin1String(c_char));
	
//qstring转int
QString str = "123";
int number = str.toInt();
	
//int 转 QString
int num = 79;
QString qnum = QString::number(num);  //默认为十进制转换,其他进制转换需显示指定
QString qhex = QString::number(num,16).toUpper();  //十六进制大写  qhex = 4F
	
//* 转 QString
QString qstr = QString("%1%2").arg(num).arg(str);
		
//QString与QDateTime之间的转换
QString strtime;
QDateTime time;
time = QDateTime::currentDateTime();   //要包含头文件
trtime = time.toString("yyyy-MM-dd hh:mm:ss");
	
/*QString转quint)*/
QString  Port_str = "8000";
quint Port_num;
Port_num=quint(Port_str.toUint());
	
/*quint转QString*/
quint Port_num = 8000;
QString IP_str;
IP_str = QString::number(IP_num);
	
//QByteArray 转换为 char *
char *ch;//不要定义成ch[n];
QByteArray byte;
ch = byte.data();
	
//char * 转换为 QByteArray
char *ch;
QByteArray byte;
byte = QByteArray(ch); 
	
//QString转十六进制
QString hexstr = "0xFF"
bool ok;
int hexnum = hexstr.toInt(&ok,16); // 表示以16进制方式读取字符串

//QString转QStringList
QString str = "name1,,name2,name3"; 
QStringList list1 = str.split(","); 

//QStringList转QString
list<< "name1" << "name2" << "name3";
QString str = list.join(",");

2、QByteArray数据类型的一些常用方法

QByteArray .prepend(); // 添加前缀 
QByteArray. append();  //添加后缀 
QByteArray.data();     //返回指向字节数组中存储的数据的指针,访问时采用ba.data()[0]  
QByteArray::fill(char ch, int size = -1); //将字节数组中的每个字节设置为字符ch。如果size与-1(默认值)不同,则字节数组将预先调整为大小。
QByteArray::indexOf(ba, int from = 0); //指定位置
QByteArray::left(int len);           //取左边len个字节
QByteArray::right(int len);          //取右边len个字节
QByteArray::toHex();
QByteArray::toStdString();

3、函数用法记录

//打印可执行文件的当前路径
qDebug("%s",qPrintable(QApplication::applicationDirPath()));

//信号与槽 简单槽函数不用定义直接执行的用法·
connect(tcpSocket,&QTcpSocket::connected,[=](){qDebug()<<"成功和服务器建立好连接";});

//QPlainTextEdit、QTextEdit、QLineEdit部件文字获取
QString str = ui->lineEdit_server_send->text();
int num_1 = ui->lineEdit->text().toInt();
//QPlainTextEdit 多行简单文本框用 toPlainText();QTextEdit 富文本框,简单文本用toPlainText(), 富文本用 toHtml().QLineEdit 用 text().

//防止UI界面卡死使用函数 
QApplication::processEvents();

//简单弹窗实现
QMessageBox::information(NULL, "提示", "发送成功",QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok);

4、常用功能实现

1、登录界面跳转实现

#include "dialog.h"
#include "accharge.h"
#include "dialog_tips.h"
#include "mainwindow.h"
#include <QApplication>
extern int chage_type;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    AcCharge accharge;
    Dialog_Tips tips;
    MainWindow abs;
    accharge.show();
    return a.exec();                    // 程序正常运行
    if(w.exec()==QDialog::Accepted){   // 判断dialog执行结果
        if(chage_type == 1)
            accharge.show();              // 如果是按下了“进入主界面”按钮,则显示主界面
        else
            tips.show();
        return a.exec();                    // 程序正常运行
    }
    else return 0;                          // 否则,退出程序
}

2、打开.bin文件的方法实现

void AcCharge::on_pushButton_14_clicked()//打开升级文件
{
    fileName = QFileDialog::getOpenFileName(this,QStringLiteral("打开文件"),".",tr("csv files(*.bin)"));
    if(fileName == "")
    {
        return;
    }
    qDebug() << "打开文件 :" + fileName;
    ui->label_5->setText(fileName);	//界面显示文件名称

    QFile file(fileName);
    if(!file.open(QIODevice::ReadOnly))		//打开文件读
    {
        qDebug()<<QStringLiteral("请正确选择.bin文件,或者文件被占用");
        ui->label_tips->setText("请正确选择.bin文件,或者文件被占用");
        ui->label_5->setText("打开失败");
        return;
    }
    else
    {
        Data.clear();
        Data=file.readAll();

        qDebug()<<"文件大小:"<<Data.size();
        ui->progressBar->setRange(0,(Data.size()/pack_size +1));//设置进度条 最大值最小值
        file.close();
    }
}

3、保存到.txt文件的方法

void AcCharge::on_pushButton_12_clicked()//接收保存
{
    QString csvFileName = QFileDialog::getSaveFileName(this, QStringLiteral("保存文件设置"), ".", "txt files(*.txt)");
    QFile file(csvFileName);
    if(!file.exists())
    {
        file.open(QIODevice::WriteOnly);
        QTextStream csvOutPut(&file);
        QString datamag = ui->textEdit_port_recv->toPlainText();
        csvOutPut << datamag.toUtf8();
        qDebug()<< "文件已保存 ";
        tips( "文件已保存a ");
        file.close();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值