OriginalWnd.cpp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. #include "OriginalWnd.h"
  2. #include "Login.h"
  3. #include "ui_OriginalWnd.h"
  4. #include "OriginalWnd/ChartsAndCamerasWnd.h"
  5. #include "OriginalWnd/MainAndSecondaryCamerasWnd.h"
  6. #include "OriginalWnd/SingleCameraOperationWnd.h"
  7. #include "OriginalWnd/DbTreeViewManager.h"
  8. #include <QDebug>
  9. #include <QJsonDocument>
  10. #include <QFile>
  11. #include <QFileDialog>
  12. #include <QDateTime>
  13. #include <QTimer>
  14. #include <QSettings>
  15. #include <QMouseEvent>
  16. #include <QDir>
  17. OriginalWnd::OriginalWnd(QWidget *parent)
  18. : QMainWindow(parent)
  19. , ui(new Ui::OriginalWnd),
  20. dbTreeViewManager(nullptr) // 初始化为 nullptr
  21. {
  22. ui->setupUi(this);
  23. if(gen_if.getLanguageValue() == 0){
  24. }else{
  25. setChineseMode(this);
  26. }
  27. // 确保 ui->widget_2 已经初始化
  28. if (!ui->widget_2) {
  29. qWarning() << "ui->widget_2 未初始化";
  30. }
  31. // 初始化 DbTreeViewManager,传递两个参数
  32. dbTreeViewManager = new DbTreeViewManager(this, ui->widget_2, this);
  33. // 将 DbTreeViewManager 添加到 UI
  34. // 假设 ui->widget_2 是你原来放 TreeViewManager 的地方
  35. QVBoxLayout *layout = new QVBoxLayout(ui->widget_2);
  36. layout->addWidget(dbTreeViewManager);
  37. ui->widget_2->setLayout(layout);
  38. // 初始化界面
  39. initForm();
  40. // 假设默认加载 Home 配置,权限等级为 "1"
  41. // 你需要根据实际登录用户的权限获取
  42. int defaultConfigId = 1; // Home_config.json 对应的 ConfigId
  43. int userPrivilege = 0x1; // 初始设为 1,后续通过登录获取
  44. dbTreeViewManager->initializeTree(defaultConfigId, userPrivilege);
  45. qDebug() << "UI 初始化完成";
  46. }
  47. OriginalWnd::~OriginalWnd()
  48. {
  49. delete ui;
  50. }
  51. QWidget* OriginalWnd::getWidgetLeft() const
  52. {
  53. return ui->widget;
  54. }
  55. void OriginalWnd::switchToHomeConfig()
  56. {
  57. int configId = 1; // Home_config.json 对应的 ConfigId
  58. int userPrivilege = 0x1; // 初始设为 1,后续通过登录获取
  59. dbTreeViewManager->initializeTree(configId, userPrivilege);
  60. }
  61. void OriginalWnd::switchToProductionConfig()
  62. {
  63. int configId = 2; // Production_config.json 对应的 ConfigId
  64. int userPrivilege = 0x1; // 初始设为 1,后续通过登录获取
  65. dbTreeViewManager->initializeTree(configId, userPrivilege);
  66. dbTreeViewManager->currentMenuId = 2;
  67. if(dbTreeViewManager->menuArray[0].isthird == true){
  68. dbTreeViewManager->loadpage(configId);
  69. }else{
  70. }
  71. }
  72. void OriginalWnd::switchToDiagnosisConfig()
  73. {
  74. int configId = 3; // Diagnosis_config.json 对应的 ConfigId
  75. int userPrivilege = 0x1; // 初始设为 1,后续通过登录获取
  76. dbTreeViewManager->initializeTree(configId, userPrivilege);
  77. dbTreeViewManager->currentMenuId = 3;
  78. if(dbTreeViewManager->menuArray[2].isthird == true){
  79. dbTreeViewManager->loadpage(configId);
  80. }else{
  81. }
  82. }
  83. void OriginalWnd::switchToDispositionConfig()
  84. {
  85. int configId = 6; // Disposition_config.json 对应的 ConfigId
  86. int userPrivilege = 0x1; // 初始设为 1,后续通过登录获取
  87. dbTreeViewManager->initializeTree(configId, userPrivilege);
  88. dbTreeViewManager->currentMenuId = 6;
  89. if(dbTreeViewManager->menuArray[4].isthird == true){
  90. dbTreeViewManager->loadpage(configId);
  91. }else{
  92. }
  93. }
  94. void OriginalWnd::switchToModuleConfig()
  95. {
  96. int configId = 4; // Module_config.json 对应的 ConfigId
  97. int userPrivilege = 0x1; // 初始设为 1,后续通过登录获取
  98. dbTreeViewManager->initializeTree(configId, userPrivilege);
  99. dbTreeViewManager->currentMenuId = 4;
  100. if(dbTreeViewManager->menuArray[3].isthird == true){
  101. dbTreeViewManager->loadpage(configId);
  102. }else{
  103. }
  104. }
  105. void OriginalWnd::switchToProgramConfig()
  106. {
  107. int configId = 5; // Program_config.json 对应的 ConfigId
  108. int userPrivilege = 0x1; // 初始设为 1,后续通过登录获取
  109. dbTreeViewManager->initializeTree(configId, userPrivilege);
  110. dbTreeViewManager->currentMenuId = 5;
  111. qDebug()<<dbTreeViewManager->menuArray[1].isthird;
  112. if(dbTreeViewManager->menuArray[1].isthird == true){
  113. dbTreeViewManager->loadpage(configId);
  114. }else{
  115. }
  116. }
  117. void OriginalWnd::setChineseMode(QMainWindow *OriginalWnd){
  118. OriginalWnd->setWindowTitle(QCoreApplication::translate("OriginalWnd", "主界面", nullptr));
  119. ui->stopButton->setText(QCoreApplication::translate("OriginalWnd", "停止"
  120. , nullptr));
  121. ui->startButton->setText(QCoreApplication::translate("OriginalWnd", "启动"
  122. , nullptr));
  123. ui->ChartButton->setText(QString());
  124. ui->DoubleImageButton->setText(QString());
  125. ui->SingleImageButton->setText(QString());
  126. // ui->pushButton_18->setText(QCoreApplication::translate("OriginalWnd", "PushButton", nullptr));
  127. ui->label_name->setText(QCoreApplication::translate("OriginalWnd", "姓名001", nullptr));
  128. ui->RegistrationNumber->setText(QCoreApplication::translate("OriginalWnd", "注册号码 001", nullptr));
  129. ui->CalibrationButton->setText(QCoreApplication::translate("OriginalWnd", "校准", nullptr));
  130. ui->ProductIotNumber->setText(QCoreApplication::translate("OriginalWnd", "xxx生产编号", nullptr));
  131. ui->pushButton_2->setText(QString());
  132. ui->pushButton_3->setText(QString());
  133. ui->label_time->setText(QString());
  134. ui->label_username->setText(QString());
  135. ui->label_userlogo->setText(QString());
  136. }
  137. void OriginalWnd::switchToSystemConfig()
  138. {
  139. int configId = 7; // System_config.json 对应的 ConfigId
  140. int userPrivilege = 0x1; // 初始设为 1,后续通过登录获取
  141. dbTreeViewManager->initializeTree(configId, userPrivilege);
  142. }
  143. void OriginalWnd::initForm()
  144. {
  145. QTimer *timer = new QTimer(this);
  146. connect(timer, &QTimer::timeout, this, &OriginalWnd::updateTime);
  147. timer->start(100);
  148. //给stopbutton加样式
  149. QString stopButton_styleSheet = "QToolButton:hover { background: #cc0000; }"
  150. "QToolButton:pressed { background: #990000; }";
  151. ui->stopButton->setStyleSheet(stopButton_styleSheet);
  152. ui->stopButton->setIcon(QIcon(":/images/light/stop.png"));
  153. ui->startButton->setIcon(QIcon(":/images/light/start.png"));
  154. ui->label_userlogo->setPixmap(QPixmap(":/images/TopStatusBar/user.png").scaled(20, 20, Qt::KeepAspectRatio));
  155. QSettings settings("OrganizationName__", "ApplicationName__");
  156. int lastSavedIndex = settings.value("lastIndex", 1).toInt();
  157. if (lastSavedIndex == 1) {
  158. ChartsAndCamerasWnd *chartsAndCamerasWnd = new ChartsAndCamerasWnd;
  159. ui->switchShowPageUI->addWidget(chartsAndCamerasWnd);
  160. ui->switchShowPageUI->setCurrentIndex(ui->switchShowPageUI->indexOf(chartsAndCamerasWnd));
  161. // ui->ChartButton->setStyleSheet("background-color: #A9B4FF;");
  162. ui->ChartButton->setChecked(true);
  163. }
  164. if (lastSavedIndex == 2) {
  165. MainAndSecondaryCamerasWnd *mainAndSecondaryCamerasWnd = new MainAndSecondaryCamerasWnd;
  166. ui->switchShowPageUI->addWidget(mainAndSecondaryCamerasWnd);
  167. ui->switchShowPageUI->setCurrentIndex(ui->switchShowPageUI->indexOf(mainAndSecondaryCamerasWnd));
  168. // ui->DoubleImageButton->setStyleSheet("background-color: #A9B4FF;");
  169. ui->DoubleImageButton->setChecked(true);
  170. }
  171. if (lastSavedIndex == 3) {
  172. SingleCameraOperationWnd *singleCameraOperationWnd = new SingleCameraOperationWnd;
  173. ui->switchShowPageUI->addWidget(singleCameraOperationWnd);
  174. ui->switchShowPageUI->setCurrentIndex(ui->switchShowPageUI->indexOf(singleCameraOperationWnd));
  175. // ui->SingleImageButton->setStyleSheet("background-color: #A9B4FF;");
  176. ui->SingleImageButton->setChecked(true);
  177. }
  178. ui->label_userlogo->installEventFilter(this);
  179. ui->label_username->installEventFilter(this);
  180. }
  181. void OriginalWnd::updateTime() {
  182. QDateTime currentDateTime = QDateTime::currentDateTime();
  183. QString timeStr = currentDateTime.toString("yyyy-MM-dd HH:mm:ss");
  184. ui->label_time->setText(timeStr);
  185. QSettings settings("YourCompany_2", "YourAppName_2");
  186. QString userName = settings.value("userName", "???").toString();
  187. ui->label_username->setText(userName);
  188. }
  189. bool OriginalWnd::eventFilter(QObject *obj,QEvent *event)
  190. {
  191. if (obj == this->ui->label_userlogo || obj == this->ui->label_username)
  192. {
  193. //判断事件类型是否为鼠标事件
  194. if (event->type() == QEvent::MouseButtonPress)
  195. {
  196. //转换为鼠标事件
  197. QMouseEvent* mouseenevt = static_cast<QMouseEvent*>(event);
  198. //判断鼠标左键点击
  199. if (mouseenevt->button() == Qt::LeftButton)
  200. {
  201. if (QStackedWidget *parent = qobject_cast<QStackedWidget*>(this->parentWidget())) {
  202. Login *loginWnd = new Login(this);
  203. parent->addWidget(loginWnd);
  204. parent->setCurrentIndex(parent->indexOf(loginWnd));
  205. }
  206. }
  207. }
  208. }
  209. return QWidget::eventFilter(obj, event);
  210. }
  211. void OriginalWnd::on_ChartButton_clicked()
  212. {
  213. QSettings settings("OrganizationName__", "ApplicationName__");
  214. settings.setValue("lastIndex", 1);
  215. ChartsAndCamerasWnd *demo001_1 = new ChartsAndCamerasWnd;
  216. ui->switchShowPageUI->addWidget(demo001_1);
  217. ui->switchShowPageUI->setCurrentIndex(ui->switchShowPageUI->indexOf(demo001_1));
  218. }
  219. void OriginalWnd::on_DoubleImageButton_clicked()
  220. {
  221. QSettings settings("OrganizationName__", "ApplicationName__");
  222. settings.setValue("lastIndex", 2);
  223. MainAndSecondaryCamerasWnd *demo001_2 = new MainAndSecondaryCamerasWnd;
  224. ui->switchShowPageUI->addWidget(demo001_2);
  225. ui->switchShowPageUI->setCurrentIndex(ui->switchShowPageUI->indexOf(demo001_2));
  226. }
  227. void OriginalWnd::on_SingleImageButton_clicked()
  228. {
  229. QSettings settings("OrganizationName__", "ApplicationName__");
  230. settings.setValue("lastIndex", 3);
  231. SingleCameraOperationWnd *demo001_3 = new SingleCameraOperationWnd;
  232. ui->switchShowPageUI->addWidget(demo001_3);
  233. ui->switchShowPageUI->setCurrentIndex(ui->switchShowPageUI->indexOf(demo001_3));
  234. }
  235. void OriginalWnd::on_startButton_clicked()
  236. {
  237. QString styleSheet = "QToolButton:disabled { color: #808080; background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #F8FBFF, stop: 1 #E7ECF3); }"; // 设置禁用状态下的文本颜色为灰色
  238. ui->startButton->setDisabled(true);
  239. ui->startButton->setStyleSheet(styleSheet);
  240. }
  241. void OriginalWnd::on_stopButton_clicked()
  242. {
  243. QString styleSheet1 = "QToolButton { background: #4AB832; color: #FFFFFF; }"
  244. "QToolButton:hover { background: #00FF00; }";
  245. ui->startButton->setDisabled(false);
  246. ui->startButton->setStyleSheet(styleSheet1);
  247. }
  248. void OriginalWnd::onHandleLanguageSignal(const int &data){
  249. if(data == 0){
  250. ui->retranslateUi(this);
  251. }else{
  252. setChineseMode(this);
  253. }
  254. }