在這裏簡單總結一下在QT中常用數據類型的轉換的知識。
第1種:QString 轉 char 類型數組
//從輸入框中獲取數據
QString data = ui->input_textEdit->document()->toPlainText();
char buff[24];//具體大小根據實際情況來定
for(int i = 0; i < data.len; i ++)
{
buff[i] = data.at[i].toLatinl();
}
第2種: char 類型數組轉QString
char buff[24];
//TODO:填充數組數據
QString data = QString(buff);
第3種: int類型數據轉QString
int value = 10;
QString data = QString::number(value);
第4種:QString轉int類型數據
QString data = "10";
int value = 0;
value = data.toInt();//此時value = 10
第5種:QString轉QByteArray
QByteArray byte_data;
QString data;//從輸入框中獲取的數據
byte_data = data.toLatinl();
第6種:QByteArray轉QString
QByteArray byte_data;
QString data;
data = QString(byte_data);
第7種:char* 轉QString
//方法1:
char *ch = "hello world";
QString data = str(ch);
//方法2:
QString data = QString::fromUtf8(ch);
//方法3:
QString data = QString(QLatin1String(ch));
第8種:QString轉char*
//方法1:藉助QByteArray類
Qstring data;
char* ch;
QByteArray byte_data= data.toLatin1();
ch=byte_data.data();
//方法2:先將QString轉換爲標準庫string類型,然後再將string轉換爲char*
std::string ch= data.toStdString();
第9種:QString轉QHostAddress
//常用網絡轉換
//從輸入框中獲取輸入的IP地址,格式XXX.XXX.XXX.XXX
QString ip_buff = ui->ip_input_textEdit->document()->toPlainText();
QHostAddress ip_addr = QHostAddress(ip_buff);
//示例,UDP發送數據
//參數類型QByteArray、int 、QHostAddress 、quint16
udp_server->writeDatagram(byte_data,data.size(),ip_addr,ip_port);
第10種:QHostAddress轉QString
//常用網絡轉化,得到ip,然後填充到顯示區域
//示例,udp讀取數據報文
QByteArray udp_datagram;
QHostAddress udp_client_address;
quint16 udp_client_port;
udp_server->readDatagram(udp_datagram.data(),udp_datagram.size(), &udp_client_address, &udp_client_port);
//轉換
QString ip_addr= udp_client_address.toString();
//填充ip_addr,顯示
ui->udp_server_ip_textEdit->setText(ip_addr);