LanguageSwitchWnd.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. }
  43. });
  44. connect(ui->darkRadioButton, &QRadioButton::toggled, this, [this](bool checked) {
  45. if (checked) {
  46. QString qssFileName = ":/dark.qss";
  47. QFile qssFile(qssFileName);
  48. if (qssFile.open(QFile::ReadOnly)) {
  49. QString qssContent = qssFile.readAll();
  50. qApp->setStyleSheet(qssContent);
  51. qssFile.close();
  52. }
  53. gen_if.setThemeValue(1);
  54. }
  55. });
  56. }
  57. LanguageSwitchWnd::~LanguageSwitchWnd()
  58. {
  59. delete ui;
  60. }
  61. void LanguageSwitchWnd::changeEvent(QEvent* event)
  62. {
  63. if (event->type() == QEvent::LanguageChange) {
  64. ui->retranslateUi(this);
  65. }
  66. }