Ver código fonte

修改qt显示方向功能

chenyuanjie 1 ano atrás
pai
commit
e2373cfe8c

BIN
Qt/Qt_Test/Qt_Test


+ 9 - 9
Qt/Qt_Test/Qt_Test.pro.user

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 4.5.2, 2025-01-07T20:00:35. -->
+<!-- Written by QtCreator 4.5.2, 2025-05-23T12:34:32. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
@@ -93,7 +93,7 @@
       <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
      </valuemap>
      <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
     </valuemap>
@@ -112,7 +112,7 @@
       <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
      </valuemap>
      <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清理</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
     </valuemap>
@@ -153,7 +153,7 @@
       <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
      </valuemap>
      <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
     </valuemap>
@@ -172,7 +172,7 @@
       <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
      </valuemap>
      <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清理</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
     </valuemap>
@@ -213,7 +213,7 @@
       <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
      </valuemap>
      <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">构建</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
     </valuemap>
@@ -232,7 +232,7 @@
       <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
      </valuemap>
      <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">清理</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
     </valuemap>
@@ -275,7 +275,7 @@
       <value type="bool" key="RemoteLinux.GenericDirectUploadStep.Incremental">true</value>
      </valuemap>
      <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
-     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">部署</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
     </valuemap>
@@ -328,7 +328,7 @@
     </valuelist>
     <value type="int" key="PE.EnvironmentAspect.Base">1</value>
     <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt_Test (在远端设备上)</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt_Test (on Remote Device)</value>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinuxRunConfiguration:Qt_Test</value>
     <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.Arguments"></value>

+ 83 - 4
Qt/Qt_Test/pdu_ctrl.cpp

@@ -7,6 +7,8 @@
 #include <QSqlDatabase>
 #include <QSqlQuery>
 #include <QSqlError>
+#include <QTextStream>
+#include <QRegularExpression>
 #define READ_INI_STR(key, default_value) (settings.contains(key) ? settings.value(key).toString() : default_value)
 #define READ_INI_INT(key, default_value) (settings.contains(key) ? settings.value(key).toInt() : default_value)
 
@@ -25,6 +27,7 @@ pdu_Ctrl::pdu_Ctrl(QObject *parent) : QObject(parent)
     nChidPHIndex=0;
     m_nAngle=0;
     isT_ACType=0;
+    m_nSaveAngle=0;
     memset(nButtonStatus,0,sizeof(nButtonStatus));
     //
 }
@@ -37,6 +40,11 @@ void pdu_Ctrl::slot_setAngel(int nAngle)
         //m_pAngleCtrl->transform(width() / 2, height() / 2);
         m_pAngleCtrl->setRotation(nAngle);
         m_nAngle=nAngle;
+        if(m_nAngle!=m_nSaveAngle)
+        {
+            m_nSaveAngle=m_nAngle;
+            SetPDUInit();
+        }
         if(nAngle==0||nAngle==180)
         {
             m_pWidget->resize(m_nWidth, m_nHeight);
@@ -97,7 +105,7 @@ void pdu_Ctrl::InitData(Widget *pWidget, QGraphicsProxyWidget *pProxy, QGraphics
 
 void pdu_Ctrl::ReadModbusInit()
 {
-    QSettings settings("./AppConfig.ini",QSettings::IniFormat);
+    QSettings settings("/root/run/app/smartPDU.ini",QSettings::IniFormat);
     m_nModbusAddress=READ_INI_INT("MODBUS/address",0);
     if(m_nModbusAddress>255||m_nModbusAddress<0)
     {
@@ -137,13 +145,17 @@ void pdu_Ctrl::ReadModbusInit()
     }
     m_db.close();
     qDebug()<<"modbus m_nModbusMSType="<<m_nModbusMSType<<" m_nModbusAddress="<<m_nModbusAddress;
+
+    ReadPDUinit();
 }
 
 void pdu_Ctrl::SaveModbusInit()
 {
-    QSettings settings("./AppConfig.ini",QSettings::IniFormat);
-    settings.setValue("MODBUS/address",m_nModbusAddress);
-    settings.setValue("MODBUS/MSType",m_nModbusMSType);//0:主机,1:从机
+    //QSettings settings("/root/run/app/smartPDU.ini",QSettings::IniFormat);
+    updateIniValue("/root/run/app/smartPDU.ini","MODBUS","address",QString::number(m_nModbusAddress));
+    updateIniValue("/root/run/app/smartPDU.ini","MODBUS","MSType",QString::number(m_nModbusMSType));
+    //settings.setValue("MODBUS/address",m_nModbusAddress);
+    //settings.setValue("MODBUS/MSType",m_nModbusMSType);//0:主机,1:从机
     QSqlDatabase m_db;
     m_db=QSqlDatabase::addDatabase("QSQLITE");
     m_db.setDatabaseName(strSqliteAddress);
@@ -173,6 +185,73 @@ void pdu_Ctrl::SaveModbusInit()
 
 }
 
+void pdu_Ctrl::ReadPDUinit()
+{
+    qDebug()<<"Read misc/rotate";
+    QSettings settings("/root/run/app/smartPDU.ini",QSettings::IniFormat);
+    QString strRotate=READ_INI_STR("misc/rotate","0");
+    qDebug()<<"misc/rotate="<<strRotate;
+    if(!strRotate.isEmpty())
+    {
+        m_nSaveAngle=strRotate.toInt();
+        qDebug()<<"InitAngleStr="<<strRotate<<"InitAngleToint="<<m_nSaveAngle;
+        m_nAngle=m_nSaveAngle;
+        slot_setAngel(m_nAngle);
+    }
+    else
+    {
+        qDebug()<<"InitAngleStr="<<strRotate;
+    }
+}
+
+void pdu_Ctrl::SetPDUInit()
+{
+    //QSettings settings("/root/run/app/smartPDU.ini",QSettings::IniFormat);
+    QString strValue="\""+QString::number(m_nSaveAngle)+"\"";
+    //settings.setValue("misc/rotate",strValue);
+    updateIniValue("/root/run/app/smartPDU.ini","misc","rotate",strValue);
+}
+
+bool pdu_Ctrl::updateIniValue(const QString &filePath, const QString &section, const QString &key, const QString &newValue)
+{
+        QFile file(filePath);
+        if (!file.open(QIODevice::ReadWrite | QIODevice::Text)) {
+            return false;
+        }
+
+        QTextStream in(&file);
+        QStringList lines;
+        bool inTargetSection = false;
+        QRegularExpression sectionRe(R"(^\[(.*)\]\s*$)");
+        QRegularExpression keyRe(R"(^\s*([^=]+)\s*=\s*(.*)\s*$)");
+
+        // 逐行读取并处理
+        while (!in.atEnd()) {
+            QString line = in.readLine();
+            QRegularExpressionMatch sectionMatch = sectionRe.match(line);
+            if (sectionMatch.hasMatch()) {
+                inTargetSection = (sectionMatch.captured(1) == section);
+            } else if (inTargetSection) {
+                QRegularExpressionMatch keyMatch = keyRe.match(line);
+                if (keyMatch.hasMatch() && keyMatch.captured(1).trimmed() == key) {
+                    // 替换目标键的值,保留原格式(如双引号)
+                    line = QString("%1 = %2").arg(key, newValue);
+                }
+            }
+            lines.append(line);
+        }
+
+        // 写回文件
+        file.resize(0); // 清空原内容
+        QTextStream out(&file);
+        for (const QString& line : lines) {
+            out << line << "\n";
+        }
+        file.close();
+        return true;
+
+}
+
 void pdu_Ctrl::Main_UPBtnSet(BtnDownType nbtnType)
 {
     qDebug()<<"Main_UPBtnSet";

+ 6 - 0
Qt/Qt_Test/pdu_ctrl.h

@@ -85,6 +85,11 @@ public:
     void ReadModbusInit();
 
     void SaveModbusInit();
+
+    void ReadPDUinit();
+    void SetPDUInit();
+
+    bool updateIniValue(const QString& filePath, const QString& section, const QString& key, const QString& newValue);
 private:
     //处理多个点
     void ButtonDown(int nButtonID, BtnDownType nDownType);
@@ -125,6 +130,7 @@ private:
     int nChidIndex;
     int nChidPHIndex;
     int m_nAngle;
+    int m_nSaveAngle;//配置文件中的数据
     //其他界面指针
     QGraphicsProxyWidget* m_pAngleCtrl;
     QGraphicsView* m_pView;

+ 2 - 2
Qt/Qt_Test/widget.ui

@@ -47,7 +47,7 @@ QLabel
       </font>
      </property>
      <property name="currentIndex">
-      <number>1</number>
+      <number>0</number>
      </property>
      <widget class="QWidget" name="page_main">
       <layout class="QVBoxLayout" name="verticalLayout_3">
@@ -95,7 +95,7 @@ QLabel
           <item>
            <widget class="QStackedWidget" name="stackedWidget_Main">
             <property name="currentIndex">
-             <number>4</number>
+             <number>0</number>
             </property>
             <widget class="QWidget" name="page_4">
              <layout class="QVBoxLayout" name="verticalLayout_6">