Qt:读取文本文件并在LineEdit中显示

时间:2016-02-29 03:54:17

标签: ruby qt methods qlineedit qtruby

我有一个输入文件和一个批处理文件。使用System命令执行批处理文件时, 生成相应的outfile。

现在我希望该outfile中的特定文本(位置350到357)显示在我的lineedit小部件上

以下是我的代码的一部分:

 system("C:/ORG_Class0178.bat")

现在将生成outfile

 File.open("C:/ORG_Class0178_out.txt", 'r').each do |line|
    var = line[350..357]
    puts var   

#测试是否正在读取文件。

    @responseLineEdit = Qt::LineEdit.new(self)
    @responseLineEdit.setFont Qt::Font.new("Times NEw Roman", 12)
    @responseLineEdit.resize 100,20
    @responseLineEdit.move 210,395 
    @responseLineEdit.setText("#{var}")
 end 

当我测试是否正在使用puts语句读取文件时,我在编辑器中获得了确切的所需输出。但是,LineEdit上不显示相同的文本。欢迎提出建议。

编辑:这里有线观察。当我尝试读取输入文件并显示它时,它工作正常,但它不适用于输出文件。 puts语句确实在编辑器中给出答案,确认输出文件确实包含所需的文本。我对这种情况很困惑。

2 个答案:

答案 0 :(得分:1)

显示的代码片段没有任何问题。

请注意var是一个局部变量。第二个和第三个代码片段是否在同一个上下文中?如果它们使用相同的方法,并且var之间没有触及它,那么它将起作用。

如果片段属于同一个类的不同方法,那么实例变量(@var)将解决问题。

如果一切无效,请使用Pry来解决问题。点击链接查找先决条件和使用方法。将binding.pry放在您的代码中,您的程序将停在该行。然后检查你的变量在做什么。

答案 1 :(得分:0)

尝试' rb'而不是' r'

File.open("C:/ORG_Class0178_out.txt", 'rb').each do |line|
    var = line[350..357]
    puts var