#include "dlgmutilanguage.h" #include "ui_dlgmutilanguage.h" #include "InputMethod.h" #include #include #include #include DlgMutiLanguage::DlgMutiLanguage(QWidget *parent) : QDialog(parent), ui(new Ui::DlgMutiLanguage) { ui->setupUi(this); // ui->listWidget->hide(); connect(ui->buttonBox,SIGNAL(accepted()),this,SLOT(SetNewLanguage())); LangIndex=INPUT_METHOD_TYPE_CHINESE; } DlgMutiLanguage::~DlgMutiLanguage() { delete ui; } void DlgMutiLanguage::setCurrentLanguage(){ if(LangIndex==INPUT_METHOD_TYPE_ENGLISH) ui->radioButton_2->setChecked(true); else if(LangIndex==INPUT_METHOD_TYPE_CHINESE) ui->radioButton->setChecked(true); else if(LangIndex==INPUT_METHOD_TYPE_VIETNAM) ui->radioButton_3->setChecked(true); //else if(LangIndex==INPUT_METHOD_TYPE_RUSSIAN) ui->radioButton_4->setChecked(true); //else if(LangIndex==INPUT_METHOD_TYPE_JAPANESE) ui->radioButton_5->setChecked(true); //else if(LangIndex==INPUT_METHOD_TYPE_KOREAN) ui->radioButton_6->setChecked(true); else ui->radioButton->setChecked(true); } int DlgMutiLanguage::getCurrentLanguage(){ // LangIndex = INPUT_METHOD_TYPE_CHINESE; // if(ui->radioButton_2->isChecked()) { // LangIndex = INPUT_METHOD_TYPE_ENGLISH; // QMessageBox::information(this,tr("提示"),tr("重启后切换到英文界面")); // buf.append("English\r\n"); // buf.append("WINPY_utf8.txt\r\n"); // } // else if(ui->radioButton_3->isChecked()) { // LangIndex = INPUT_METHOD_TYPE_VIETNAM; // QMessageBox::information(this,tr("提示"),tr("重启后切换到越南语界面")); // buf.append("Vietnamese\r\n"); // buf.append("YN_utf8.txt\r\n"); // } // /*else if(ui->radioButton->isChecked()) { // } // else if(ui->radioButton->isChecked()) { // } // else if(ui->radioButton->isChecked()) { // }*/ // else { // QMessageBox::information(this,tr("提示"),tr("重启后切换到中文界面")); // buf.append("Chinese\r\n"); // buf.append("WINPY_utf8.txt\r\n"); // } return LangIndex; } void DlgMutiLanguage::bindSysPara(SysPara *sysPara) { this->sysPara = sysPara; } void DlgMutiLanguage::SetNewLanguage() { LangIndex = INPUT_METHOD_TYPE_CHINESE; QFile file("/home/plg/UseEn"); QByteArray buf; buf.clear(); if(file.open(QIODevice::ReadWrite)) {//怀疑是QIODevice::Truncate 引起参数错误,去掉试试看 if(ui->radioButton_2->isChecked()) { LangIndex = INPUT_METHOD_TYPE_ENGLISH; buf.append("English\r\n"); buf.append("WINPY_utf8.txt\r\n"); } else if(ui->radioButton_3->isChecked()) { LangIndex = INPUT_METHOD_TYPE_VIETNAM; buf.append("Turkish\r\n"); buf.append("WINPY_utf8.txt\r\n"); } else if(ui->radioButton_4->isChecked()) { LangIndex = INPUT_METHOD_TYPE_SPANISH; buf.append("Spanish\r\n"); buf.append("WINPY_utf8.txt\r\n"); } else if(ui->radioButton_5->isChecked()) { LangIndex = INPUT_METHOD_TYPE_THAI; buf.append("Thai\r\n"); buf.append("WINPY_utf8.txt\r\n"); } else if(ui->radioButton_6->isChecked()) { LangIndex = INPUT_METHOD_TYPE_VIETNAM; buf.append("Vietnamese\r\n"); buf.append("WINPY_utf8.txt\r\n"); } else if(ui->radioButton_7->isChecked()) { LangIndex = INPUT_METHOD_TYPE_Farsi; buf.append("Farsi\r\n"); buf.append("WINPY_utf8.txt\r\n"); } else if(ui->radioButton_korean->isChecked()){ LangIndex = INPUT_METHOD_TYPE_KOREAN; buf.append("Korean\r\n"); buf.append("WINPY_utf8.txt\r\n"); } else { buf.append("Chinese\r\n"); buf.append("WINPY_utf8.txt\r\n"); } file.write(buf); fsync(file.handle()); file.close(); } // 提示重启 QMessageBox::StandardButton ret = QMessageBox::information(this, tr("提示"),tr("是否重启?"), QMessageBox::Ok | QMessageBox::Cancel); if (ret == QMessageBox::Ok) { sysPara->saveParaToFile(); // 关机前将相关配置保存 sysPara->saveRFIDPara(); mySleep(200); system("sync");//缓存同步 QCoreApplication::quit(); } } void DlgMutiLanguage::mySleep(unsigned int msec) { QTime dieTime = QTime::currentTime().addMSecs(msec); while( QTime::currentTime() < dieTime ) QCoreApplication::processEvents(QEventLoop::AllEvents, 100); }