MainWnd.cpp 39 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015
  1. #include "MainWnd.h"
  2. #include "ui_MainWnd.h"
  3. #include "Login.h"
  4. #include <QMouseEvent>
  5. #include <qDebug>
  6. #include "OriginalWnd/OriginalWnd.h"
  7. #include <QDialogButtonBox>
  8. MainWnd::MainWnd(QWidget *parent)
  9. : QMainWindow(parent)
  10. , ui(new Ui::MainWnd)
  11. ,initialIconSet(false)
  12. {
  13. ui->setupUi(this);
  14. int themeValue = gen_if.getThemeValue();
  15. applyTheme(themeValue);
  16. if(gen_if.getLanguageValue() == 0){
  17. }else{
  18. setChineseMode(this);
  19. }
  20. // // 初始化 OriginalWnd
  21. m_originalWnd = new OriginalWnd(this);
  22. // // 将 OriginalWnd 添加到 stackedWidget_UI
  23. ui->stackedWidget_UI->addWidget(m_originalWnd);
  24. bool buttonConnected = connect(ui->tabHomeBtn, &QPushButton::clicked,
  25. this, &MainWnd::on_tabHomeBtn_clicked);
  26. qDebug() << "Connected tabHomeBtn clicked to on_tabHomeBtn_clicked:" << buttonConnected;
  27. connect(ui->tabProductionBtn, &QPushButton::clicked,
  28. this, &MainWnd::on_tabProductionBtn_clicked);
  29. connect(ui->tabDiagnosisBtn, &QPushButton::clicked,
  30. this, &MainWnd::on_tabDiagnosisBtn_clicked);
  31. connect(ui->tabDispositionBtn, &QPushButton::clicked,
  32. this, &MainWnd::on_tabDispositionBtn_clicked);
  33. connect(ui->tabModuleBtn, &QPushButton::clicked,
  34. this, &MainWnd::on_tabModuleBtn_clicked);
  35. // connect(ui->tabSystemBtn, &QPushButton::clicked,
  36. // this, &MainWnd::on_tabSystemBtn_clicked);
  37. connect(ui->tabProgramBtn, &QPushButton::clicked,
  38. this, &MainWnd::on_tabProgramBtn_clicked);
  39. connect(this,&MainWnd::setLanguageSignal,
  40. this->m_originalWnd,&OriginalWnd::onHandleLanguageSignal);
  41. // 设置 OriginalWnd 为当前页面
  42. ui->stackedWidget_UI->setCurrentWidget(m_originalWnd);
  43. qDebug() << "OriginalWnd 已设置为 stackedWidget 的当前页面";
  44. initForm();
  45. }
  46. MainWnd::~MainWnd()
  47. {
  48. delete ui;
  49. }
  50. void MainWnd::on_tabProductionBtn_clicked()
  51. {
  52. m_originalWnd->switchToProductionConfig();
  53. ui->stackedWidget_UI->setCurrentWidget(m_originalWnd);
  54. }
  55. void MainWnd::on_tabHomeBtn_clicked()
  56. {
  57. m_originalWnd->switchToHomeConfig();
  58. ui->stackedWidget_UI->setCurrentWidget(m_originalWnd);
  59. }
  60. void MainWnd::on_tabProgramBtn_clicked()
  61. {
  62. m_originalWnd->switchToProgramConfig();
  63. ui->stackedWidget_UI->setCurrentWidget(m_originalWnd);
  64. }
  65. void MainWnd::on_tabModuleBtn_clicked()
  66. {
  67. m_originalWnd->switchToModuleConfig();
  68. ui->stackedWidget_UI->setCurrentWidget(m_originalWnd);
  69. }
  70. void MainWnd::on_tabDispositionBtn_clicked()
  71. {
  72. m_originalWnd->switchToDispositionConfig();
  73. ui->stackedWidget_UI->setCurrentWidget(m_originalWnd);
  74. }
  75. void MainWnd::on_tabDiagnosisBtn_clicked()
  76. {
  77. m_originalWnd->switchToDiagnosisConfig();
  78. ui->stackedWidget_UI->setCurrentWidget(m_originalWnd);
  79. }
  80. void MainWnd::on_tabSystemBtn_clicked()
  81. {
  82. QDialog settingsDialog(this);
  83. settingsDialog.setWindowTitle(tr("Settings"));
  84. QVBoxLayout mainLayout;
  85. settingsDialog.setLayout(&mainLayout);
  86. // Language Group
  87. QLabel languageLabel(tr("Language:"));
  88. QRadioButton englishRadio(tr("English"));
  89. QRadioButton chineseRadio(tr("Chinese"));
  90. QButtonGroup languageGroup;
  91. languageGroup.addButton(&englishRadio);
  92. languageGroup.addButton(&chineseRadio);
  93. QVBoxLayout languageLayout;
  94. languageLayout.addWidget(&languageLabel);
  95. languageLayout.addWidget(&englishRadio);
  96. languageLayout.addWidget(&chineseRadio);
  97. // Theme Group
  98. QLabel themeLabel(tr("Theme:"));
  99. QRadioButton lightThemeRadio(tr("Light"));
  100. QRadioButton darkThemeRadio(tr("Dark"));
  101. QButtonGroup themeGroup;
  102. themeGroup.addButton(&lightThemeRadio);
  103. themeGroup.addButton(&darkThemeRadio);
  104. QVBoxLayout themeLayout;
  105. themeLayout.addWidget(&themeLabel);
  106. themeLayout.addWidget(&lightThemeRadio);
  107. themeLayout.addWidget(&darkThemeRadio);
  108. // Dialog Button Box
  109. QDialogButtonBox buttonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
  110. connect(&buttonBox, &QDialogButtonBox::accepted, &settingsDialog, &QDialog::accept);
  111. connect(&buttonBox, &QDialogButtonBox::rejected, &settingsDialog, &QDialog::reject);
  112. mainLayout.addLayout(&languageLayout);
  113. mainLayout.addLayout(&themeLayout);
  114. mainLayout.addWidget(&buttonBox);
  115. int init_language_data = gen_if.getLanguageValue();
  116. int init_theme_data = gen_if.getThemeValue();
  117. if (init_language_data == 0) {
  118. englishRadio.setChecked(true);
  119. } else {
  120. chineseRadio.setChecked(true);
  121. languageLabel.setText(tr("语言"));
  122. englishRadio.setText(tr("英语"));
  123. chineseRadio.setText(tr("中文"));
  124. themeLabel.setText(tr("主题"));
  125. lightThemeRadio.setText(tr("浅色"));
  126. darkThemeRadio.setText(tr("深色"));
  127. settingsDialog.setWindowTitle(tr("设置"));
  128. }
  129. if (init_theme_data == 0) {
  130. lightThemeRadio.setChecked(true);
  131. } else {
  132. darkThemeRadio.setChecked(true);
  133. }
  134. int current_language_data = init_language_data;
  135. int current_theme_data = init_theme_data;
  136. connect(&languageGroup, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
  137. [&current_language_data, &englishRadio, &chineseRadio](QAbstractButton *button) {
  138. if (button == &englishRadio) {
  139. current_language_data = 0;
  140. qDebug() << "Language set to English";
  141. } else if (button == &chineseRadio) {
  142. current_language_data = 1;
  143. qDebug() << "Language set to Chinese";
  144. }
  145. });
  146. connect(&themeGroup, QOverload<QAbstractButton *>::of(&QButtonGroup::buttonClicked),
  147. [&current_theme_data, &lightThemeRadio, &darkThemeRadio](QAbstractButton *button) {
  148. if (button == &lightThemeRadio) {
  149. current_theme_data = 0;
  150. qDebug() << "Theme set to Light";
  151. } else if (button == &darkThemeRadio) {
  152. current_theme_data = 1;
  153. qDebug() << "Theme set to Dark";
  154. }
  155. });
  156. int result = settingsDialog.exec();
  157. QSettings settings("YourCompany", "YourApplication_style");
  158. if (result == QDialog::Accepted) {
  159. // 处理“OK”按钮点击事件
  160. if (init_language_data != current_language_data) {
  161. gen_if.setLanguageValue(current_language_data);
  162. if (current_language_data == 0) {
  163. ui->retranslateUi(this);
  164. setLanguageSignal(current_language_data);
  165. } else {
  166. setChineseMode(this);
  167. setLanguageSignal(current_language_data);
  168. }
  169. }
  170. if (init_theme_data != current_theme_data) {
  171. gen_if.setThemeValue(current_theme_data);
  172. QString qssFileName;
  173. if (current_theme_data == 0) {
  174. qssFileName = ":/light.qss";
  175. settings.setValue("Flag_Style", 0);
  176. } else {
  177. qssFileName = ":/dark.qss";
  178. settings.setValue("Flag_Style", 1);
  179. }
  180. QFile qssFile(qssFileName);
  181. if (qssFile.open(QFile::ReadOnly)) {
  182. QString qssContent = qssFile.readAll();
  183. qApp->setStyleSheet(qssContent);
  184. qssFile.close();
  185. }
  186. }
  187. // emit styleChanged();
  188. qDebug() << "Dialog accepted";
  189. } else if (result == QDialog::Rejected) {
  190. // 处理“Cancel”按钮点击事件
  191. // qDebug() << "Dialog rejected";
  192. }
  193. }
  194. void MainWnd::applyTheme(int themeValue)
  195. {
  196. QString qssFileName;
  197. if (themeValue == 0) {
  198. qssFileName = ":/light.qss";
  199. } else {
  200. qssFileName = ":/dark.qss";
  201. }
  202. QFile qssFile(qssFileName);
  203. if (qssFile.open(QFile::ReadOnly)) {
  204. QString qssContent = qssFile.readAll();
  205. qApp->setStyleSheet(qssContent);
  206. qssFile.close();
  207. }
  208. }
  209. void MainWnd::initForm()
  210. {
  211. // 隐藏原生标题栏
  212. setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
  213. // 窗口背景透明
  214. setAttribute(Qt::WA_TranslucentBackground, true);
  215. Login *login = new Login;
  216. ui->stackedWidget_UI->addWidget(login);
  217. ui->stackedWidget_UI->setCurrentIndex(ui->stackedWidget_UI->indexOf(login));
  218. //登录监听
  219. ui->label_logo_m->installEventFilter(this);
  220. ui->stackedWidget_UI->installEventFilter(this);
  221. //安装监听事件,点击左侧按钮图标变化
  222. ui->tabHomeBtn->installEventFilter(this);
  223. ui->tabProductionBtn->installEventFilter(this);
  224. ui->tabProgramBtn->installEventFilter(this);
  225. ui->tabMessageBtn->installEventFilter(this);
  226. ui->tabModuleBtn->installEventFilter(this);
  227. ui->tabDispositionBtn->installEventFilter(this);
  228. ui->tabDiagnosisBtn->installEventFilter(this);
  229. ui->tabSystemBtn->installEventFilter(this);
  230. ui->tabHelpBtn->installEventFilter(this);
  231. QMouseEvent* pressEvent = new QMouseEvent(QEvent::MouseButtonPress,
  232. ui->tabHomeBtn->pos(),
  233. Qt::LeftButton,
  234. Qt::LeftButton,
  235. Qt::NoModifier);
  236. QApplication::sendEvent(ui->tabHomeBtn, pressEvent);
  237. delete pressEvent;
  238. }
  239. bool MainWnd::eventFilter(QObject *obj, QEvent *event)
  240. {
  241. if (obj == this->ui->stackedWidget_UI)
  242. {
  243. onCurrentWidgetChanged();
  244. }
  245. if (obj == this->ui->label_logo_m)
  246. {
  247. //判断事件类型是否为鼠标事件
  248. if (event->type() == QEvent::MouseButtonPress)
  249. {
  250. //转换为鼠标事件
  251. QMouseEvent* mouseenevt = static_cast<QMouseEvent*>(event);
  252. //判断鼠标左键点击
  253. if (mouseenevt->button() == Qt::LeftButton)
  254. {
  255. Login *login = new Login;
  256. ui->stackedWidget_UI->addWidget(login);
  257. ui->stackedWidget_UI->setCurrentIndex(ui->stackedWidget_UI->indexOf(login));
  258. return true;
  259. }
  260. }
  261. }
  262. QSettings settings("YourCompany", "YourApplication_style");
  263. int flag = settings.value("Flag_Style", 0).toInt();
  264. switch(event->type())
  265. {
  266. case QEvent::MouseButtonPress:
  267. {
  268. if(obj == ui->tabHomeBtn && ui->tabHomeBtn->isEnabled())
  269. {
  270. ui->tabHomeBtn->setIcon(QIcon(":/images/deep/home.png"));
  271. ui->tabHomeBtn->setChecked(true);
  272. if(flag == 0) {
  273. if(ui->tabProductionBtn->isChecked() == false)
  274. {
  275. ui->tabProductionBtn->setIcon(QIcon(":/images/light/Productionn assistance.png"));
  276. }
  277. if(ui->tabProgramBtn->isChecked() == false)
  278. {
  279. ui->tabProgramBtn->setIcon(QIcon(":/images/light/Program.png"));
  280. }
  281. if(ui->tabMessageBtn->isChecked() == false)
  282. {
  283. ui->tabMessageBtn->setIcon(QIcon(":/images/light/Message.png"));
  284. }
  285. if(ui->tabModuleBtn->isChecked() == false)
  286. {
  287. ui->tabModuleBtn->setIcon(QIcon(":/images/light/Module.png"));
  288. }
  289. if(ui->tabDispositionBtn->isChecked() == false)
  290. {
  291. ui->tabDispositionBtn->setIcon(QIcon(":/images/light/Disposition.png"));
  292. }
  293. if(ui->tabDiagnosisBtn->isChecked() == false)
  294. {
  295. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/light/Diagnosis.png"));
  296. }
  297. if(ui->tabSystemBtn->isChecked() == false)
  298. {
  299. ui->tabSystemBtn->setIcon(QIcon(":/images/light/System.png"));
  300. }
  301. if(ui->tabHelpBtn->isChecked() == false)
  302. {
  303. ui->tabHelpBtn->setIcon(QIcon(":/images/light/Help.png"));
  304. }
  305. }
  306. }
  307. if(obj == ui->tabProductionBtn && ui->tabProductionBtn->isEnabled())
  308. {
  309. ui->tabProductionBtn->setIcon(QIcon(":/images/deep/Productionn assistance.png"));
  310. ui->tabProductionBtn->setChecked(true);
  311. if(flag == 0) {
  312. if(ui->tabHomeBtn->isChecked() == false)
  313. {
  314. ui->tabHomeBtn->setIcon(QIcon(":/images/light/home.png"));
  315. }
  316. if(ui->tabProgramBtn->isChecked() == false)
  317. {
  318. ui->tabProgramBtn->setIcon(QIcon(":/images/light/Program.png"));
  319. }
  320. if(ui->tabMessageBtn->isChecked() == false)
  321. {
  322. ui->tabMessageBtn->setIcon(QIcon(":/images/light/Message.png"));
  323. }
  324. if(ui->tabModuleBtn->isChecked() == false)
  325. {
  326. ui->tabModuleBtn->setIcon(QIcon(":/images/light/Module.png"));
  327. }
  328. if(ui->tabDispositionBtn->isChecked() == false)
  329. {
  330. ui->tabDispositionBtn->setIcon(QIcon(":/images/light/Disposition.png"));
  331. }
  332. if(ui->tabDiagnosisBtn->isChecked() == false)
  333. {
  334. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/light/Diagnosis.png"));
  335. }
  336. if(ui->tabSystemBtn->isChecked() == false)
  337. {
  338. ui->tabSystemBtn->setIcon(QIcon(":/images/light/System.png"));
  339. }
  340. if(ui->tabHelpBtn->isChecked() == false)
  341. {
  342. ui->tabHelpBtn->setIcon(QIcon(":/images/light/Help.png"));
  343. }
  344. }
  345. }
  346. if(obj == ui->tabProgramBtn && ui->tabProgramBtn->isEnabled())
  347. {
  348. ui->tabProgramBtn->setIcon(QIcon(":/images/deep/Program.png"));
  349. ui->tabProgramBtn->setChecked(true);
  350. if(flag == 0) {
  351. if(ui->tabHomeBtn->isChecked() == false)
  352. {
  353. ui->tabHomeBtn->setIcon(QIcon(":/images/light/home.png"));
  354. }
  355. if(ui->tabProductionBtn->isChecked() == false)
  356. {
  357. ui->tabProductionBtn->setIcon(QIcon(":/images/light/Productionn assistance.png"));
  358. }
  359. if(ui->tabMessageBtn->isChecked() == false)
  360. {
  361. ui->tabMessageBtn->setIcon(QIcon(":/images/light/Message.png"));
  362. }
  363. if(ui->tabModuleBtn->isChecked() == false)
  364. {
  365. ui->tabModuleBtn->setIcon(QIcon(":/images/light/Module.png"));
  366. }
  367. if(ui->tabDispositionBtn->isChecked() == false)
  368. {
  369. ui->tabDispositionBtn->setIcon(QIcon(":/images/light/Disposition.png"));
  370. }
  371. if(ui->tabDiagnosisBtn->isChecked() == false)
  372. {
  373. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/light/Diagnosis.png"));
  374. }
  375. if(ui->tabSystemBtn->isChecked() == false)
  376. {
  377. ui->tabSystemBtn->setIcon(QIcon(":/images/light/System.png"));
  378. }
  379. if(ui->tabHelpBtn->isChecked() == false)
  380. {
  381. ui->tabHelpBtn->setIcon(QIcon(":/images/light/Help.png"));
  382. }
  383. }
  384. }
  385. if(obj == ui->tabMessageBtn && ui->tabMessageBtn->isEnabled())
  386. {
  387. ui->tabMessageBtn->setIcon(QIcon(":/images/deep/Message.png"));
  388. ui->tabMessageBtn->setChecked(true);
  389. if(flag == 0) {
  390. if(ui->tabHomeBtn->isChecked() == false)
  391. {
  392. ui->tabHomeBtn->setIcon(QIcon(":/images/light/home.png"));
  393. }
  394. if(ui->tabProductionBtn->isChecked() == false)
  395. {
  396. ui->tabProductionBtn->setIcon(QIcon(":/images/light/Productionn assistance.png"));
  397. }
  398. if(ui->tabProgramBtn->isChecked() == false)
  399. {
  400. ui->tabProgramBtn->setIcon(QIcon(":/images/light/Program.png"));
  401. }
  402. if(ui->tabModuleBtn->isChecked() == false)
  403. {
  404. ui->tabModuleBtn->setIcon(QIcon(":/images/light/Module.png"));
  405. }
  406. if(ui->tabDispositionBtn->isChecked() == false)
  407. {
  408. ui->tabDispositionBtn->setIcon(QIcon(":/images/light/Disposition.png"));
  409. }
  410. if(ui->tabDiagnosisBtn->isChecked() == false)
  411. {
  412. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/light/Diagnosis.png"));
  413. }
  414. if(ui->tabSystemBtn->isChecked() == false)
  415. {
  416. ui->tabSystemBtn->setIcon(QIcon(":/images/light/System.png"));
  417. }
  418. if(ui->tabHelpBtn->isChecked() == false)
  419. {
  420. ui->tabHelpBtn->setIcon(QIcon(":/images/light/Help.png"));
  421. }
  422. }
  423. }
  424. if(obj == ui->tabModuleBtn && ui->tabModuleBtn->isEnabled())
  425. {
  426. ui->tabModuleBtn->setIcon(QIcon(":/images/deep/Module.png"));
  427. ui->tabModuleBtn->setChecked(true);
  428. if(flag == 0) {
  429. if(ui->tabHomeBtn->isChecked() == false)
  430. {
  431. ui->tabHomeBtn->setIcon(QIcon(":/images/light/home.png"));
  432. }
  433. if(ui->tabProductionBtn->isChecked() == false)
  434. {
  435. ui->tabProductionBtn->setIcon(QIcon(":/images/light/Productionn assistance.png"));
  436. }
  437. if(ui->tabProgramBtn->isChecked() == false)
  438. {
  439. ui->tabProgramBtn->setIcon(QIcon(":/images/light/Program.png"));
  440. }
  441. if(ui->tabMessageBtn->isChecked() == false)
  442. {
  443. ui->tabMessageBtn->setIcon(QIcon(":/images/light/Message.png"));
  444. }
  445. if(ui->tabDispositionBtn->isChecked() == false)
  446. {
  447. ui->tabDispositionBtn->setIcon(QIcon(":/images/light/Disposition.png"));
  448. }
  449. if(ui->tabDiagnosisBtn->isChecked() == false)
  450. {
  451. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/light/Diagnosis.png"));
  452. }
  453. if(ui->tabSystemBtn->isChecked() == false)
  454. {
  455. ui->tabSystemBtn->setIcon(QIcon(":/images/light/System.png"));
  456. }
  457. if(ui->tabHelpBtn->isChecked() == false)
  458. {
  459. ui->tabHelpBtn->setIcon(QIcon(":/images/light/Help.png"));
  460. }
  461. }
  462. }
  463. if(obj == ui->tabDispositionBtn && ui->tabDispositionBtn->isEnabled())
  464. {
  465. ui->tabDispositionBtn->setIcon(QIcon(":/images/deep/Disposition.png"));
  466. ui->tabDispositionBtn->setChecked(true);
  467. if(flag == 0) {
  468. if(ui->tabHomeBtn->isChecked() == false)
  469. {
  470. ui->tabHomeBtn->setIcon(QIcon(":/images/light/home.png"));
  471. }
  472. if(ui->tabProductionBtn->isChecked() == false)
  473. {
  474. ui->tabProductionBtn->setIcon(QIcon(":/images/light/Productionn assistance.png"));
  475. }
  476. if(ui->tabProgramBtn->isChecked() == false)
  477. {
  478. ui->tabProgramBtn->setIcon(QIcon(":/images/light/Program.png"));
  479. }
  480. if(ui->tabMessageBtn->isChecked() == false)
  481. {
  482. ui->tabMessageBtn->setIcon(QIcon(":/images/light/Message.png"));
  483. }
  484. if(ui->tabModuleBtn->isChecked() == false)
  485. {
  486. ui->tabModuleBtn->setIcon(QIcon(":/images/light/Module.png"));
  487. }
  488. if(ui->tabDiagnosisBtn->isChecked() == false)
  489. {
  490. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/light/Diagnosis.png"));
  491. }
  492. if(ui->tabSystemBtn->isChecked() == false)
  493. {
  494. ui->tabSystemBtn->setIcon(QIcon(":/images/light/System.png"));
  495. }
  496. if(ui->tabHelpBtn->isChecked() == false)
  497. {
  498. ui->tabHelpBtn->setIcon(QIcon(":/images/light/Help.png"));
  499. }
  500. }
  501. }
  502. if(obj == ui->tabDiagnosisBtn && ui->tabDiagnosisBtn->isEnabled())
  503. {
  504. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/deep/Diagnosis.png"));
  505. ui->tabDiagnosisBtn->setChecked(true);
  506. if(flag == 0) {
  507. if(ui->tabHomeBtn->isChecked() == false)
  508. {
  509. ui->tabHomeBtn->setIcon(QIcon(":/images/light/home.png"));
  510. }
  511. if(ui->tabProductionBtn->isChecked() == false)
  512. {
  513. ui->tabProductionBtn->setIcon(QIcon(":/images/light/Productionn assistance.png"));
  514. }
  515. if(ui->tabProgramBtn->isChecked() == false)
  516. {
  517. ui->tabProgramBtn->setIcon(QIcon(":/images/light/Program.png"));
  518. }
  519. if(ui->tabMessageBtn->isChecked() == false)
  520. {
  521. ui->tabMessageBtn->setIcon(QIcon(":/images/light/Message.png"));
  522. }
  523. if(ui->tabModuleBtn->isChecked() == false)
  524. {
  525. ui->tabModuleBtn->setIcon(QIcon(":/images/light/Module.png"));
  526. }
  527. if(ui->tabDispositionBtn->isChecked() == false)
  528. {
  529. ui->tabDispositionBtn->setIcon(QIcon(":/images/light/Disposition.png"));
  530. }
  531. if(ui->tabSystemBtn->isChecked() == false)
  532. {
  533. ui->tabSystemBtn->setIcon(QIcon(":/images/light/System.png"));
  534. }
  535. if(ui->tabHelpBtn->isChecked() == false)
  536. {
  537. ui->tabHelpBtn->setIcon(QIcon(":/images/light/Help.png"));
  538. }
  539. }
  540. }
  541. if(obj == ui->tabSystemBtn && ui->tabSystemBtn->isEnabled())
  542. {
  543. ui->tabSystemBtn->setIcon(QIcon(":/images/deep/System.png"));
  544. ui->tabSystemBtn->setChecked(true);
  545. if(flag == 0) {
  546. if(ui->tabHomeBtn->isChecked() == false)
  547. {
  548. ui->tabHomeBtn->setIcon(QIcon(":/images/light/home.png"));
  549. }
  550. if(ui->tabProductionBtn->isChecked() == false)
  551. {
  552. ui->tabProductionBtn->setIcon(QIcon(":/images/light/Productionn assistance.png"));
  553. }
  554. if(ui->tabProgramBtn->isChecked() == false)
  555. {
  556. ui->tabProgramBtn->setIcon(QIcon(":/images/light/Program.png"));
  557. }
  558. if(ui->tabMessageBtn->isChecked() == false)
  559. {
  560. ui->tabMessageBtn->setIcon(QIcon(":/images/light/Message.png"));
  561. }
  562. if(ui->tabModuleBtn->isChecked() == false)
  563. {
  564. ui->tabModuleBtn->setIcon(QIcon(":/images/light/Module.png"));
  565. }
  566. if(ui->tabDispositionBtn->isChecked() == false)
  567. {
  568. ui->tabDispositionBtn->setIcon(QIcon(":/images/light/Disposition.png"));
  569. }
  570. if(ui->tabDiagnosisBtn->isChecked() == false)
  571. {
  572. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/light/Diagnosis.png"));
  573. }
  574. if(ui->tabHelpBtn->isChecked() == false)
  575. {
  576. ui->tabHelpBtn->setIcon(QIcon(":/images/light/Help.png"));
  577. }
  578. }
  579. }
  580. if(obj == ui->tabHelpBtn && ui->tabHelpBtn->isEnabled())
  581. {
  582. ui->tabHelpBtn->setIcon(QIcon(":/images/deep/Help.png"));
  583. ui->tabHelpBtn->setChecked(true);
  584. if(flag == 0){
  585. if(ui->tabHomeBtn->isChecked() == false)
  586. {
  587. ui->tabHomeBtn->setIcon(QIcon(":/images/light/home.png"));
  588. }
  589. if(ui->tabProductionBtn->isChecked() == false)
  590. {
  591. ui->tabProductionBtn->setIcon(QIcon(":/images/light/Productionn assistance.png"));
  592. }
  593. if(ui->tabProgramBtn->isChecked() == false)
  594. {
  595. ui->tabProgramBtn->setIcon(QIcon(":/images/light/Program.png"));
  596. }
  597. if(ui->tabMessageBtn->isChecked() == false)
  598. {
  599. ui->tabMessageBtn->setIcon(QIcon(":/images/light/Message.png"));
  600. }
  601. if(ui->tabModuleBtn->isChecked() == false)
  602. {
  603. ui->tabModuleBtn->setIcon(QIcon(":/images/light/Module.png"));
  604. }
  605. if(ui->tabDispositionBtn->isChecked() == false)
  606. {
  607. ui->tabDispositionBtn->setIcon(QIcon(":/images/light/Disposition.png"));
  608. }
  609. if(ui->tabDiagnosisBtn->isChecked() == false)
  610. {
  611. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/light/Diagnosis.png"));
  612. }
  613. if(ui->tabSystemBtn->isChecked() == false)
  614. {
  615. ui->tabSystemBtn->setIcon(QIcon(":/images/light/System.png"));
  616. }
  617. }
  618. }
  619. break;
  620. }
  621. case QEvent::HoverEnter:
  622. {
  623. if(flag == 0) {
  624. if(obj == ui->tabHomeBtn && ui->tabHomeBtn->isEnabled())
  625. {
  626. ui->tabHomeBtn->setIcon(QIcon(":/images/deep/home.png"));
  627. }
  628. if(obj == ui->tabProductionBtn && ui->tabProductionBtn->isEnabled())
  629. {
  630. ui->tabProductionBtn->setIcon(QIcon(":/images/deep/Productionn assistance.png"));
  631. }
  632. if(obj == ui->tabProgramBtn && ui->tabProgramBtn->isEnabled())
  633. {
  634. ui->tabProgramBtn->setIcon(QIcon(":/images/deep/Program.png"));
  635. }
  636. if(obj == ui->tabMessageBtn && ui->tabMessageBtn->isEnabled())
  637. {
  638. ui->tabMessageBtn->setIcon(QIcon(":/images/deep/Message.png"));
  639. }
  640. if(obj == ui->tabModuleBtn && ui->tabModuleBtn->isEnabled())
  641. {
  642. ui->tabModuleBtn->setIcon(QIcon(":/images/deep/Module.png"));
  643. }
  644. if(obj == ui->tabDispositionBtn && ui->tabDispositionBtn->isEnabled())
  645. {
  646. ui->tabDispositionBtn->setIcon(QIcon(":/images/deep/Disposition.png"));
  647. }
  648. if(obj == ui->tabDiagnosisBtn && ui->tabDiagnosisBtn->isEnabled())
  649. {
  650. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/deep/Diagnosis.png"));
  651. }
  652. if(obj == ui->tabSystemBtn && ui->tabSystemBtn->isEnabled())
  653. {
  654. ui->tabSystemBtn->setIcon(QIcon(":/images/deep/System.png"));
  655. }
  656. if(obj == ui->tabHelpBtn && ui->tabHelpBtn->isEnabled())
  657. {
  658. ui->tabHelpBtn->setIcon(QIcon(":/images/deep/Help.png"));
  659. }
  660. }
  661. break;
  662. }
  663. case QEvent::HoverLeave:
  664. {
  665. if (flag == 0) {
  666. if(obj == ui->tabHomeBtn && ui->tabHomeBtn->isChecked() == false)
  667. {
  668. ui->tabHomeBtn->setIcon(QIcon(":/images/light/home.png"));
  669. ui->tabHomeBtn->setChecked(false);
  670. }
  671. if(obj == ui->tabProductionBtn && ui->tabProductionBtn->isChecked() == false)
  672. {
  673. ui->tabProductionBtn->setIcon(QIcon(":/images/light/Productionn assistance.png"));
  674. ui->tabProductionBtn->setChecked(false);
  675. }
  676. if(obj == ui->tabProgramBtn && ui->tabProgramBtn->isChecked() == false)
  677. {
  678. ui->tabProgramBtn->setIcon(QIcon(":/images/light/Program.png"));
  679. ui->tabProgramBtn->setChecked(false);
  680. }
  681. if(obj == ui->tabMessageBtn && ui->tabMessageBtn->isChecked() == false)
  682. {
  683. ui->tabMessageBtn->setIcon(QIcon(":/images/light/Message.png"));
  684. ui->tabMessageBtn->setChecked(false);
  685. }
  686. if(obj == ui->tabModuleBtn && ui->tabModuleBtn->isChecked() == false)
  687. {
  688. ui->tabModuleBtn->setIcon(QIcon(":/images/light/Module.png"));
  689. ui->tabModuleBtn->setChecked(false);
  690. }
  691. if(obj == ui->tabDispositionBtn && ui->tabDispositionBtn->isChecked() == false)
  692. {
  693. ui->tabDispositionBtn->setIcon(QIcon(":/images/light/Disposition.png"));
  694. ui->tabDispositionBtn->setChecked(false);
  695. }
  696. if(obj == ui->tabDiagnosisBtn && ui->tabDiagnosisBtn->isChecked() == false)
  697. {
  698. ui->tabDiagnosisBtn->setIcon(QIcon(":/images/light/Diagnosis.png"));
  699. ui->tabDiagnosisBtn->setChecked(false);
  700. }
  701. if(obj == ui->tabSystemBtn && ui->tabSystemBtn->isChecked() == false)
  702. {
  703. ui->tabSystemBtn->setIcon(QIcon(":/images/light/System.png"));
  704. ui->tabSystemBtn->setChecked(false);
  705. }
  706. if(obj == ui->tabHelpBtn && ui->tabHelpBtn->isChecked() == false)
  707. {
  708. ui->tabHelpBtn->setIcon(QIcon(":/images/light/Help.png"));
  709. ui->tabHelpBtn->setChecked(false);
  710. }
  711. }
  712. }
  713. default:
  714. break;
  715. }
  716. return QWidget::eventFilter(obj, event);
  717. }
  718. void MainWnd::onCurrentWidgetChanged() {
  719. QWidget *currentWidget = ui->stackedWidget_UI->currentWidget();
  720. if (currentWidget) {
  721. QString currentWidgetName = currentWidget->objectName();
  722. QSettings settings("YourCompany", "YourApplication_style");
  723. int flag = settings.value("Flag_Style", 0).toInt();
  724. if (currentWidgetName == "Login") {
  725. QString styleSheet;
  726. if (flag == 0) {
  727. styleSheet = "QToolButton:disabled { color: #808080; background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #F8FBFF, stop: 1 #E7ECF3); }"; // 设置禁用状态下的文本颜色为灰色
  728. } else if (flag == 1) {
  729. styleSheet = "QToolButton:disabled { color: #B1B2D8; background: #7276AA;}";
  730. }
  731. ui->tabHomeBtn->setDisabled(true);
  732. ui->tabHomeBtn->setIcon(QIcon(":/images/light/home.png"));
  733. ui->tabHomeBtn->setStyleSheet(styleSheet);
  734. ui->tabProductionBtn->setDisabled(true);
  735. ui->tabProductionBtn->setStyleSheet(styleSheet);
  736. ui->tabProgramBtn->setDisabled(true);
  737. ui->tabProgramBtn->setStyleSheet(styleSheet);
  738. ui->tabMessageBtn->setDisabled(true);
  739. ui->tabMessageBtn->setStyleSheet(styleSheet);
  740. ui->tabModuleBtn->setDisabled(true);
  741. ui->tabModuleBtn->setStyleSheet(styleSheet);
  742. ui->tabDispositionBtn->setDisabled(true);
  743. ui->tabDispositionBtn->setStyleSheet(styleSheet);
  744. ui->tabDiagnosisBtn->setDisabled(true);
  745. ui->tabDiagnosisBtn->setStyleSheet(styleSheet);
  746. ui->tabSystemBtn->setDisabled(true);
  747. ui->tabSystemBtn->setStyleSheet(styleSheet);
  748. ui->tabHelpBtn->setDisabled(true);
  749. ui->tabHelpBtn->setStyleSheet(styleSheet);
  750. } else {
  751. ui->tabHomeBtn->setDisabled(false);
  752. if (!initialIconSet) {
  753. ui->tabHomeBtn->setIcon(QIcon(":/images/deep/home.png"));
  754. initialIconSet = true;
  755. }
  756. ui->tabProductionBtn->setDisabled(false);
  757. ui->tabProgramBtn->setDisabled(false);
  758. ui->tabMessageBtn->setDisabled(false);
  759. ui->tabModuleBtn->setDisabled(false);
  760. ui->tabDispositionBtn->setDisabled(false);
  761. ui->tabDiagnosisBtn->setDisabled(false);
  762. ui->tabSystemBtn->setDisabled(false);
  763. ui->tabHelpBtn->setDisabled(false);
  764. }
  765. }
  766. }
  767. void MainWnd::setChineseMode(QMainWindow *MainWnd){
  768. MainWnd->setWindowTitle(QCoreApplication::translate("MainWnd", "主界面", nullptr));
  769. ui->tabHomeBtn->setText(QCoreApplication::translate("MainWnd", "首页", nullptr));
  770. ui->label_logo_m->setText(QString());
  771. ui->tabProductionBtn->setText(QCoreApplication::translate("MainWnd", "产品助手", nullptr));
  772. ui->tabProgramBtn->setText(QCoreApplication::translate("MainWnd", "进程", nullptr));
  773. ui->tabMessageBtn->setText(QCoreApplication::translate("MainWnd", "信息", nullptr));
  774. ui->tabModuleBtn->setText(QCoreApplication::translate("MainWnd", "校准", nullptr));
  775. ui->tabDispositionBtn->setText(QCoreApplication::translate("MainWnd", "模块配置", nullptr));
  776. ui->tabDiagnosisBtn->setText(QCoreApplication::translate("MainWnd", "诊断", nullptr));
  777. ui->tabSystemBtn->setText(QCoreApplication::translate("MainWnd", "系统信息", nullptr));
  778. ui->tabHelpBtn->setText(QCoreApplication::translate("MainWnd", "帮助", nullptr));
  779. ui->pushButton->setText(QCoreApplication::translate("MainWnd", "关闭", nullptr));
  780. }
  781. void MainWnd::on_pushButton_clicked()
  782. {
  783. //加确认关闭提示确认窗口
  784. // 创建一个消息框
  785. QMessageBox msgBox;
  786. if(gen_if.getLanguageValue() == 0){
  787. msgBox.setWindowTitle("Confirm Close");
  788. msgBox.setText("Are you sure you want to close the application?");
  789. }else{
  790. msgBox.setWindowTitle("确认关闭");
  791. msgBox.setText("你确定要关闭程序吗");
  792. }
  793. msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
  794. msgBox.setDefaultButton(QMessageBox::No);
  795. // 显示消息框并获取用户的选择
  796. int ret = msgBox.exec();
  797. switch (ret) {
  798. case QMessageBox::Yes:
  799. // 用户点击了确认按钮,执行关闭操作
  800. qApp->quit();
  801. break;
  802. case QMessageBox::No:
  803. // 用户点击了取消按钮,不执行任何操作
  804. break;
  805. default:
  806. // 其他情况
  807. break;
  808. }
  809. // qApp->quit();
  810. }
  811. // QJsonObject MainWnd::getInfofromDb(){
  812. // QJsonObject data;
  813. // QJsonArray fieldsArray;
  814. // QSqlDatabase db = QSqlDatabase::database();
  815. // if (!db.isOpen()) {
  816. // qWarning() << "数据库未打开";
  817. // return data;
  818. // }
  819. // // 查询 systemConfig 表
  820. // QSqlQuery queryBond(db);
  821. // queryBond.prepare(R"(
  822. // SELECT Function, Description,setValue
  823. // FROM systemConfig
  824. // )");
  825. // if (queryBond.exec()) {
  826. // while (queryBond.next()) {
  827. // QJsonObject field;
  828. // field["Function"] = queryBond.value("Function").toString();
  829. // field["Description"] = queryBond.value("Description").toString();
  830. // field["setValue"] = queryBond.value("setValue").toInt();
  831. // fieldsArray.append(field);
  832. // }
  833. // // qDebug() << "Fetched fields:" << fieldsArray;
  834. // } else {
  835. // qWarning() << "查询 systemConfig 失败:" << queryBond.lastError().text();
  836. // }
  837. // data["systemConfig"]=fieldsArray;
  838. // // qDebug() << "Fetched data:" << data;
  839. // return data;
  840. // }
  841. // int MainWnd::getLanguageValue(){
  842. // int data;
  843. // QJsonArray fieldsArray;
  844. // QSqlDatabase db = QSqlDatabase::database();
  845. // if (!db.isOpen()) {
  846. // qWarning() << "数据库未打开";
  847. // return -1;
  848. // }
  849. // // 查询 systemConfig 表
  850. // QSqlQuery queryBond(db);
  851. // queryBond.prepare(R"(
  852. // SELECT Function, Description,setValue
  853. // FROM systemConfig
  854. // )");
  855. // if (queryBond.exec()) {
  856. // while (queryBond.next()) {
  857. // QJsonObject field;
  858. // field["Function"] = queryBond.value("Function").toString();
  859. // if(field["Function"] == "language"){
  860. // data = queryBond.value("setValue").toInt();
  861. // return data;
  862. // }
  863. // }
  864. // // qDebug() << "Fetched fields:" << fieldsArray;
  865. // } else {
  866. // qWarning() << "查询 systemConfig 失败:" << queryBond.lastError().text();
  867. // }
  868. // return -1;
  869. // }
  870. // int MainWnd::getThemeValue(){
  871. // int data;
  872. // QJsonArray fieldsArray;
  873. // QSqlDatabase db = QSqlDatabase::database();
  874. // if (!db.isOpen()) {
  875. // qWarning() << "数据库未打开";
  876. // return -1;
  877. // }
  878. // // 查询 systemConfig 表
  879. // QSqlQuery queryBond(db);
  880. // queryBond.prepare(R"(
  881. // SELECT Function, Description,setValue
  882. // FROM systemConfig
  883. // )");
  884. // if (queryBond.exec()) {
  885. // while (queryBond.next()) {
  886. // QJsonObject field;
  887. // field["Function"] = queryBond.value("Function").toString();
  888. // if(field["Function"] == "theme"){
  889. // data = queryBond.value("setValue").toInt();
  890. // return data;
  891. // }
  892. // }
  893. // // qDebug() << "Fetched fields:" << fieldsArray;
  894. // } else {
  895. // qWarning() << "查询 systemConfig 失败:" << queryBond.lastError().text();
  896. // }
  897. // return -1;
  898. // }
  899. // void MainWnd::setLanguageValue(int data){
  900. // QSqlDatabase db = QSqlDatabase::database();
  901. // if (!db.isOpen()) {
  902. // qWarning() << "数据库未打开";
  903. // }
  904. // QString sql = QString("UPDATE systemConfig SET setValue = '%1' WHERE Function = 'language'").arg(data);
  905. // QSqlQuery query;
  906. // if (query.exec(sql)) {
  907. // qDebug() << "Update successful";
  908. // } else {
  909. // qDebug() << "Update failed:" << query.lastError().text();
  910. // }
  911. // }
  912. // void MainWnd::setThemeValue(int data){
  913. // QSqlDatabase db = QSqlDatabase::database();
  914. // if (!db.isOpen()) {
  915. // qWarning() << "数据库未打开";
  916. // }
  917. // QString sql = QString("UPDATE systemConfig SET setValue = '%1' WHERE Function = 'theme'").arg(data);
  918. // QSqlQuery query;
  919. // if (query.exec(sql)) {
  920. // qDebug() << "Update successful";
  921. // } else {
  922. // qDebug() << "Update failed:" << query.lastError().text();
  923. // }
  924. // }