Qt Ruby:创建表并从文本文件动态输入数据
我有一个名为data.txt的文本文件,其中包含各种参数,如编号、状态等。 每行包含一组不同的数据 现在,在我的GUI中,我有了提交按钮。单击该按钮,我希望这些数据中的“少数”在GUI屏幕上显示为表格 一件事是我知道它在文本文件中的位置: 例如:状态显示在文本文件每行的位置[70..78] 数字出现在文本文件每行的位置[85..90],依此类推 我只希望数据的那些特定部分显示在表的各个列中 欢迎提出任何建议。我正在使用Qt和Ruby进行GUI设计Qt Ruby:创建表并从文本文件动态输入数据,ruby,qt,qtableview,qtablewidget,qtruby,Ruby,Qt,Qtableview,Qtablewidget,Qtruby,我有一个名为data.txt的文本文件,其中包含各种参数,如编号、状态等。 每行包含一组不同的数据 现在,在我的GUI中,我有了提交按钮。单击该按钮,我希望这些数据中的“少数”在GUI屏幕上显示为表格 一件事是我知道它在文本文件中的位置: 例如:状态显示在文本文件每行的位置[70..78] 数字出现在文本文件每行的位置[85..90],依此类推 我只希望数据的那些特定部分显示在表的各个列中 欢迎提出任何建议。我正在使用Qt和Ruby进行GUI设计 Following images show wh
Following images show what exactly i am looking for:
编辑:使用Stephen提到的解决方案: 使用直线位置对我很有效。但这里有一个查询,当我尝试使用puts语句时,它确实正确地打印。但是,当我尝试在TextEdit小部件中使用相同的代码来显示它时,不会显示每一行
@text_var = "#{line[70..78]}\t#{line[85..90]}
@text = Qt::TextEdit.new(self)
@text.setText (@text_var)
puts @text_var
Puts语句给出了正确的输出,但是我无法在小部件中发送相同的输出。
若我使用break语句,那个么第一行将正确地显示在小部件中。所以,当它试图逐行读取小部件时,就会发生错误。最终,它会被覆盖,最后一行只有空格的地方会被打印在我感觉到的小部件中
有什么解决办法吗 看起来您希望的
状态
和编号总是出现在同一列中。您可以在空白处拆分data.txt
的每一行,以仅显示所需的列
File.open('data.txt').readlines.each do |line|
columns = line.split(/\s+/)
puts "#{columns[4]}\t#{columns[5]}"
end
这将打印第5列和第6列,由选项卡分隔
您还可以利用了解该职位的优势,如您所述:
File.open('data.txt').readlines.each do |line|
puts "#{line[70..78]}\t#{line[85..90]}"
end
谢谢你的解决方案。我将尝试使用此方法一次,然后返回。然而,因为我知道状态和数字在每一行中出现在完全相同的位置,就像第[70..78]行将显示b状态一样,我能用它代替列吗?是的,你也可以这样做。我会把它添加到解决方案中谢谢。这一部分更适合我,我想因为我已经尝试使用代码中其他部分的位置,我会尽快尝试它们,并得到结果!!请检查下面代码中的编辑部分并清除该查询!我无法在注释中添加代码部分,因此在问题中编辑如果需要,最好将转换部分和GUI部分拆分为单独的过程和问题,转换为eg数组,并通过简单的数组输入检查一切是否正常,然后尝试将数组显示到表中,请单独提问,并向我们展示您使用的代码和数据示例