在敲陆文周的书《QT5开发及实例》的示例代码时,出现乱码,如下图所示
具体代码如下
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
ui->treeWidget->clear();
int groupSize = 2;
int itemSize = 4;
for(int i=1;i<=groupSize;i++){
QTreeWidgetItem *group = new QTreeWidgetItem(ui->treeWidget);
group->setText(0,QString("小组")+QString::number(i));
group->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled|Qt::ItemIsSelectable);
group->setCheckState(0,Qt::Unchecked);
for(int j=1;j<=itemSize;j++){
QTreeWidgetItem *subItem = new QTreeWidgetItem(group);
subItem->setText(0,QString("项目")+QString::number(i)+QString::number(j));
subItem->setFlags(Qt::ItemIsUserCheckable|Qt::ItemIsEnabled|Qt::ItemIsSelectable);
subItem->setCheckState(0,Qt::Unchecked);
}
}
}
在阅读csdn大佬急支糖浆的文章后,理解了 源文件码字符集,执行字符集等概念。
#pragma execution_character_set("utf-8")
QTextCodec *codec = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
推荐采用第二种方案解决。