LanguageSwitchWnd.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #include "LanguageSwitchWnd.h"
  2. #include "ui_LanguageSwitchWnd.h"
  3. LanguageSwitchWnd::LanguageSwitchWnd(QWidget *parent)
  4. : QDialog(parent)
  5. , ui(new Ui::LanguageSwitchWnd)
  6. {
  7. ui->setupUi(this);
  8. if (gen_if.getLanguageValue() == 0)
  9. {
  10. ui->englishRadioButton->setChecked(true);
  11. }
  12. else
  13. {
  14. ui->chRadioButton->setChecked(true);
  15. }
  16. if (gen_if.getThemeValue() == 0)
  17. {
  18. ui->lightRadioButton->setChecked(true);
  19. }
  20. else
  21. {
  22. ui->darkRadioButton->setChecked(true);
  23. }
  24. connect(ui->englishRadioButton, &QRadioButton::toggled, this, [this](bool checked) {
  25. if (checked)
  26. emit languageChanged("en");
  27. });
  28. connect(ui->chRadioButton, &QRadioButton::toggled, this, [this](bool checked) {
  29. if (checked)
  30. emit languageChanged("zh_CN");
  31. });
  32. connect(ui->lightRadioButton, &QRadioButton::toggled, this, [this](bool checked) {
  33. if (checked) {
  34. QString qssFileName = ":/light.qss";
  35. QFile qssFile(qssFileName);
  36. if (qssFile.open(QFile::ReadOnly)) {
  37. QString qssContent = qssFile.readAll();
  38. qApp->setStyleSheet(qssContent);
  39. qssFile.close();
  40. }
  41. gen_if.setThemeValue(0);
  42. QSettings settings("YourCompany", "YourApplication_style");
  43. settings.setValue("Flag_Style", 0);
  44. }
  45. });
  46. connect(ui->darkRadioButton, &QRadioButton::toggled, this, [this](bool checked) {
  47. if (checked) {
  48. QString qssFileName = ":/dark.qss";
  49. QFile qssFile(qssFileName);
  50. if (qssFile.open(QFile::ReadOnly)) {
  51. QString qssContent = qssFile.readAll();
  52. qApp->setStyleSheet(qssContent);
  53. qssFile.close();
  54. }
  55. QSettings settings("YourCompany", "YourApplication_style");
  56. settings.setValue("Flag_Style", 1);
  57. gen_if.setThemeValue(1);
  58. }
  59. });
  60. }
  61. LanguageSwitchWnd::~LanguageSwitchWnd()
  62. {
  63. delete ui;
  64. }
  65. void LanguageSwitchWnd::changeEvent(QEvent* event)
  66. {
  67. if (event->type() == QEvent::LanguageChange) {
  68. ui->retranslateUi(this);
  69. }
  70. }