Pyqt5中的LineEdit

时间:2017-04-05 09:44:03

标签: python python-3.x pyqt pyqt4 pyqt5

我想用pyqt5来修改我的文档。

在界面中输入一些信息(例如,IP ......等)

然后使用这些变量替换信息的原始示例

但输入值未出现在文件

文件显示'无'

如果设置

echo "ssssse text" | grep --color 's*e\b'

文件显示''

这是我的代码

 ip = self.lineEdit_ip.text()

如何修改我的代码?

*更新(04/06) @ kamik423结果就像是图像。不是'6.6.6.6'。

enter image description here

2 个答案:

答案 0 :(得分:1)

我们可以使用editingFinished信号,这是在放置文字并按EnterReturn后执行,也就是说,放置所需的文字,然后按EnterReturn

def __init__(self):
    super().__init__()
    self.setupUi(self)
    self.setWindowTitle('SetezPlan')
    self.SetIP()
    self.lineEdit_ip.editingFinished.connect(self.SetIP)

def SetIP(self, event):
    ip = str(self.lineEdit_ip.text())
    with open(os.path.join(ezPath,'Server.txt'),'r+') as f:
        flist=f.readlines()  
        flist[0]= ip
        f.writelines(flist)
    f.close()

答案 1 :(得分:0)

解决方案(未经测试,因为我没有剩下的程序) 每次在SetIP内输入或删除符号时,都会调用lineEdit。它打开文件,写入第一行并再次保存。现在按钮是不必要的(据我所知)

def __init__(self):
    super().__init__()
    self.setupUi(self)
    self.setWindowTitle('SetezPlan')
    self.lineEdit_ip.textChanged.connect(self.SetIP)

def SetIP(self, event):
    ip = str(self.lineEdit_ip.text())
    with open(os.path.join(ezPath,'Server.txt'),'r+') as f:
        flist=f.readlines()  
        flist[0]= ip
        f.writelines(flist)
    f.close()