Qt Ruby:动态创建表并从文本文件输入数据

Posted

技术标签:

【中文标题】Qt Ruby:动态创建表并从文本文件输入数据【英文标题】:Qt Ruby: Creating the table and entering the data from text file dynamically 【发布时间】:2016-03-09 03:12:14 【问题描述】:

我有一个名为 data.txt 的文本文件,其中包含数字、状态等各种参数。 每行包含一组不同的数据。

现在,在我的 GUI 中,我有提交按钮。单击该按钮后,我希望这些数据中的“少数”在 GUI 屏幕上显示为表格

有一件事是我知道它在文本文件中的位置:

例如:状态出现在文本文件每一行的位置 [70..78] 数字出现在每行文本文件中的位置 [85..90] 等等

我只想在表格的各个列中显示那些特定的数据部分

欢迎提出任何建议。我正在使用 Qt 和 Ruby 进行 GUI 设计

Following images show what exactly i am looking for: 

编辑:使用斯蒂芬提到的解决方案:

使用线路位置对我有用。但是这里有一个查询,当我尝试使用 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 语句,那么第一行将正确显示在小部件中。因此,当它尝试逐行读取小部件时会发生错误。最终,它被覆盖,最后一行只有空白的地方被打印在我感觉的小部件中。

对此有什么解决方案吗?

【问题讨论】:

如有必要,最好将转换部分和 GUI 部分拆分为单独的进程和问题,转换为例如数组并通过简单的数组放置检查是否一切正常,然后尝试将数组显示到表中,为此提出单独的问题并向我们展示您使用的代码和数据示例 【参考方案1】:

您希望StatusNumber 看起来总是出现在同一列中。您可以在空白处拆分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

【讨论】:

感谢您的解决方案。我将尝试使用此方法一次并返回。但是,由于我知道状态和数字出现在每一行中完全相同的位置,例如 line[70..78] wil b status ,我不能利用它而不是列吗? 是的,你也可以这样做。我将其添加到解决方案中 谢谢。我想那部分会更适合我,因为我已经尝试使用代码其他部分中的位置 我会尽快尝试并得到结果!! 请检查下面代码中的编辑部分并清除该查询!我无法在 cmets 中添加代码部分,所以编辑有问题

以上是关于Qt Ruby:动态创建表并从文本文件输入数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ruby​​ api 创建一个 bigquery 表并从云存储导入

自动创建表并从 json 文件插入数据

Qt - 无法访问动态创建的 QHBoxLayout 小部件

如何在 google bigquery 数据集中创建动态表并在 tableau 中访问?

使用 PHP 创建表并从 MySQL 填充

QT5 动态链接库的创建和使用