2016-09-21 14 views
0

我想使用textBrowser類在QT中顯示WAV文件的前40個字節,我創建了一個使這成爲可能的短程序。不過,我想知道是否有更好的方式來格式化顯示的數據,如C中的printf,它爲您提供格式化選項,例如十六進制,十進制,浮點數或添加逗號,空格等。如果textBrowser不是一個好選擇,由於我知道它從textEdit繼承,所以更多選項是受歡迎的。我的目標是,如果使用QT,它可以用HEX或DEC顯示整個數據,而無需使用for循環,並以逗號分隔。提前致謝。如何使用textBrowser或任何其他diplay部件來顯示和格式化數據

void MainWindow::on_pushButton_clicked() 
{ 

    wav->setHeader(Filename); //set the QByteArray bufffer in WAV class with first 40 bytes 

    for (int i=0;i<40;i++) 
    { 
     unsigned char var = wav->buffer.at(i); 
     ui->textBrowser->insertPlainText(QString::number(var)); 
     ui->textBrowser->insertPlainText(" "); 
    } 
} 
+0

QT不支持C! – Olaf

+0

通過QString類我發現公共函數arg()和靜態plublic成員QString :: number(int n,int base = 16),它有助於格式化字符串,添加空格或逗號等,並更改基礎號碼。我改變了代碼的最後2行,所以輸出是十六進制數字,用空格分隔,單個數字將用0填充。 ui-> textBrowser-> insertPlainText(QString(「%1」).arg(myString,2,'0'));' – luffyKun

回答

1

如果您正在尋找類似的printf()再有就是QString::sprintf()

0

的QString類文檔建議使用的QString :: ARG()來格式化輸出。您可以添加製表符,填充字符到您的答案等,這裏是我所遵循的鏈接:http://doc.qt.io/qt-4.8/qstring.html#arg和公共成員QString :: number(),它可以幫助您在不同的數字系統中顯示您的號碼。

相關問題