python串口助手

问题遇到的现象和发生背景

为保持界面相关的内容关闭再打开,保留原有状态。配置了ini文件,但是配置后只能在打开时读取一次,若是打开时改变一些东西不能按照新的信号进行变化,就出现了以下情况,界面变成英文,但是 提示还是中文

问题相关代码,请勿粘贴截图

img

运行结果及报错内容

配置了ini

 try:
            self.txt = open("language.ini", 'r')
            self.l = self.txt.read()
            self.txt.close()
        except Exception as err:
            txt = open("language.ini", 'w')
            txt.write("0")
            txt.flush()
            txt.close()
            self.l = "0"
            pass


```python
 #语言选择
        if self.l=="Chinese":
            self.ui.action1.trigger()
        if self.l=="English":
            self.ui.action2.trigger()
        #语言初始化
        if self.l == "0":
            self.ui.action1.trigger()

点击打开串口后 若被占用出现的情况
```python
    def slot_pushButton_Com_flage(self, sate):
        print('串口打开状态', sate)
        if sate == 0:
            if self.l=="Chinese":
                qw.QMessageBox.warning(self, '错误信息', '串口已占用,打开失败')
            if self.l=="0":
                qw.QMessageBox.warning(self, '错误信息', '串口已占用,打开失败')
            elif self.l=="English":
                qw.QMessageBox.warning(self, 'error message', 'The serial port is in use')

我的解答思路和尝试过的方法

能随时读取ini内的字符吗?
还是用点击按钮产生信号发生self.l的改变?

我想要达到的结果

这要看你代码是怎么写的

没太明白,你所说的保留原有状态是仅指语言状态还是还包括其它设置,你的问题看起来像是异常退出设置没有写入到配置文件中的问题,但是没完全理解你的意思,不是太确定

可以参考一下这个代码来读取串口


import serial
import serial.tools.list_ports
 
plist = list(serial.tools.list_ports.comports())
 
if len(plist) <= 0:
    print ("The Serial port can't find!")
else:
    plist_0 =list(plist[0])
    serialName = plist_0[0]
    serialFd = serial.Serial(serialName,9600,timeout = 60)
    print ("check which port was really used >",serialFd.name)