简体   繁体   English

如何将char转换为QString?

[英]How can I convert a char to QString?

Well this proves I'm a noob at coding! 好吧,这证明我是编码方面的新手! I've looked everywhere and still can't get this right. 我到处都看过,但仍然无法正确处理。 This should be pretty simple. 这应该很简单。

I have been trying this: 我一直在尝试:

int i;
for(i=0;i<16;i++)
{
  QChar q = QChar(memblock[i]);
  QString s = QString(q);
  QTableWidgetItem *item = new QTableWidgetItem(s);
  ui->tableWidget->setItem(rowCount, colCount, item);
}

So I'm making table items from each string. 所以我正在从每个字符串中制作表格项目。 That's because I also couldn't figure out how to make table items from just a QChar, or plain char. 这是因为我也无法弄清楚如何仅通过QChar或纯字符制作表项。

But each cell ends up with: 但是每个单元格都以:

Ý

Whereas when I add in: 而当我添加:

cout << memblock[i];

It properly shows: 它正确显示:

RIFFd2  WAVEfmt 

Here is the code that reads in the raw data: 这是读取原始数据的代码:

ifstream file (text, ios::in|ios::binary|ios::ate);
if (file.is_open())
{
    size = file.tellg();
    memblock = new char [size];
    file.seekg(0, ios::beg);
    file.read(memblock, size);
    file.close();
}

Also, when I do cout << &memblock[i] , for i from 0 to 4 I get: RIFFd2 IFFd2 FFd2 Fd2 此外,当我做cout << &memblock[i]令i从0到4,我得到: RIFFd2 IFFd2 FFd2 Fd2

And so on. 等等。

I've managed to use some simplified variant of your code with Qt 4.8.3 and MSVC 2010: 我设法在Qt 4.8.3和MSVC 2010中使用了一些简化的代码变体:

ui.tableWidget->setColumnCount(5);
ui.tableWidget->setRowCount(5);
char *memChunck = new char[25];
for ( int i = 0; i < 25; ++i ) {
    memChunck[i] = i + 65;
}
for ( int i = 0; i < 25; ++i ) {
    QTableWidgetItem *item = new QTableWidgetItem(QString::number( memChunck[i], 16).toUpper() );
    ui.tableWidget->setItem(i / 5, i % 5, item);
}

结果视图

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM