fix:解决中文乱码BUG。

This commit is contained in:
2024-05-24 09:18:06 +08:00
parent 019740f550
commit 3d1fcc5dc8
6 changed files with 90 additions and 80 deletions

View File

@@ -16,7 +16,7 @@ MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget
{
ui->setupUi(this);
setWindowTitle(u8"OneLevelXmlOpr v1.2.13");
setWindowTitle(u8"OneLevelXmlOpr v1.2.14");
setWindowIcon(QIcon("://resource/xml.ico"));
QScreen* primaryScreen = QGuiApplication::primaryScreen();
@@ -185,7 +185,7 @@ void MainWidget::generate_table_widget()
[&](QTableWidgetItem* item) { item_changed_handle(item); });
connect(tab_widget_, &QTableWidget::customContextMenuRequested, this, &MainWidget::show_custom_menu);
auto config = ini_.get_config();
auto keys = splitString(config.purpose, ",");
auto keys = CUtil::splitString(config.purpose, ",");
keys_.clear();
QStringList list;
for (const auto& item : keys) {
@@ -240,6 +240,7 @@ void MainWidget::push_content(const std::vector<tinyxml2::XMLElement*>& eles, st
tab_widget_->clearContents();
tab_widget_->setRowCount(0);
auto_add_ = true;
for (auto p = (page - 1) * g_OnePage; p < all_size && p < max_show; ++p) {
int row_cnt = tab_widget_->rowCount();
tab_widget_->insertRow(row_cnt);
@@ -249,6 +250,7 @@ void MainWidget::push_content(const std::vector<tinyxml2::XMLElement*>& eles, st
cur_page_ = page;
ui->edAllPage->setText(QString::number(all_page_));
judge_btn_page();
auto_add_ = false;
}
void MainWidget::judge_btn_page()
@@ -285,11 +287,9 @@ void MainWidget::read(const QString& file_path)
return;
}
auto_add_ = true;
generate_table_widget();
push_content(vec_);
current_ = vec_;
auto_add_ = false;
ui->edStatus->setText(file_path);
ui->btnRead->setEnabled(false);
@@ -350,7 +350,7 @@ void MainWidget::item_changed_handle(QTableWidgetItem* item)
if (result == nullptr) {
return;
}
result->SetAttribute(keys_[col].c_str(), item->text().toLocal8Bit().constData());
result->SetAttribute(keys_[col].c_str(), item->text().toStdString().c_str());
}
void MainWidget::save()
@@ -495,8 +495,8 @@ void MainWidget::insert_one_line(Element_t* ele, int row)
// wgItem->setFlags(wgItem->flags() | Qt::ItemIsUserCheckable);
// wgItem->setCheckState(Qt::Checked);
}
wgItem->setText(QString(data));
QString sda(data);
wgItem->setText(sda);
tab_widget_->setItem(row, i, wgItem);
}
}