GUI编程以在Linux中显示磁盘中的记录

Posted

技术标签:

【中文标题】GUI编程以在Linux中显示磁盘中的记录【英文标题】:GUI programming to display record from disk in linux 【发布时间】:2013-01-23 09:22:08 【问题描述】:

我需要实现的目标 我在磁盘(特定文件)上有大量(大约 100 万条)记录(每条记录 500 字节),格式如下

===========================================================
|X|a,b,c|O|m,n,g|X|t,a,c|X|e,p,q|O|u,q,p|X|r,t,s|O|l,m,a|
===========================================================  

第一个字段由标志('X')组成,表示有效填充数据,标志('O')由结构化数据组成。例如,第一个集合包含一个有效数据,其数据为 a,b,c(假设结构)。

我需要在屏幕(linux)上显示它们更像top 命令输出(就简单而言 - 意味着键盘输入驱动、动态 GUI - 如刷新、向下翻页选项等),例如 -

Display Record From No XXX                    

Records Number                                Field 1                         Field 2                           Field 3
1                                                a                                b                                c
2                                                NA                               NA                               NA
3                                                t                                a                                c
4                                                o                                p                                q
5                                                NA                               NA                               NA
6                                                r                                t                                s
7                                                NA                               NA                               NA

F5 [Referesh]                Page-Down [Next Page]                Page-Up [Prev Page]                Ctrl+C [Exit]  

值XXX,将由用户输入并显示一页记录。

问题

一个。由于显示类似于 top/atop 命令的显示,您能否告诉我这些命令显示输出的基础?

b.任何更适合此类操作的特定语言(如 GTK、QT 等)?除了 top/atop 命令中使用的语言之外,基本上任何更好的语言。 (可能这个问题是主观的)但想收集最佳意见?

c。现在,如果我想对结构进行模板化(通过在配置文件中提供)以便可以读取和显示不同类型的结构,那么这可能是哪种语言最好?注意:我的意思是,文件 1 仅包含结构 A 数据。文件 2 包含结构 B 数据。所以在读取文件2时,我想加载结构B的结构配置并运行该工具进行显示。

PS : 上述文件实际上是使用普通 C 应用程序写入文件的(暗示结构及其字段将是 C 基本数据类型属性)。

【问题讨论】:

对于类似***的 GUI 功能,请使用 curses 库。 curses 是一个出色的软件包,请务必从 GNU 尝试 ncurses。 (新诅咒;)) GTK+ 和 Qt 不是“语言”,它们是用户界面工具包库。至少 GTK+ 可以从大量不同的编程语言中使用(通过“绑定”)。 【参考方案1】:

一个。 top 的实现有很多。其中一些使用curses\ncurses 库。

b.如果没有理由让你的程序从控制台运行(文本模式),那么当然,图形模式,上面提到的 GUI 工具包运行,似乎更适合你的需要。这些工具包不是编程语言,而是用特定语言编写的库(尽管有时带有自己的扩展)。

在这种情况下我不鼓励 Qt,因为它有糟糕的 Model/View 实现(这尤其是您需要的)。对于 GTK,有 Gnome-DB 项目。如果我是你,我会看看Dabo。

c。我不确定你所说的配置文件是什么意思,如果你是指一些插件系统或解释器,但我认为使用 Python、Ruby、php 等可解释语言会更直接。但是,因为你的文件是巨大的,我不确定它们是否会在没有一些调整的情况下持续存在。处理此类文件本身就是一项挑战。

还有一个选项可以将文件导出到数据库并使用一些数据库操作软件。

如果你有统计数据,那么你可以看看R 和像 RKWard 这样的 GUI 前端。

【讨论】:

你的答案是最好和最接近的。我确实从你的回答中得到了很多信息。谢谢!

以上是关于GUI编程以在Linux中显示磁盘中的记录的主要内容,如果未能解决你的问题,请参考以下文章

如何在 FLTK 中编写面板任务栏以在 Linux 系统上使用

Python GUI编程(Tkinter)Label控件

Python GUI编程(Tkinter)

Python GUI编程(Tkinter) windows界面开发

您如何以编程方式更新 Qt 中的 UI?

结对编程1