最简单的让Qt界面和我的C程序接洽的办法是什么

谭海燕 2010-02-27 08:17:23
linux写一个小型的系统。但是最近需要给他加个界面。但是又不好重新用Qt来重写这个C代码构建的系统。

不知道各位有什么好的办法。

Qt界面需要实时的显示我这个系统当前的系统运行状况,包括CPU,以及温度,等等。

以前主要是在黑屏下打印当前系统状况。

所以,我想找一个最简单的让QT界面和我的程序接洽的方法。
...全文
408 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsnangua 2012-06-06
  • 打赏
  • 举报
回复
不知道楼主对这方面研究的怎么样啦?我最近也在做这个啊,指点一下啊
谭海燕 2010-03-04
  • 打赏
  • 举报
回复
以上几位高手的指点,我想的话对于现实数据没有什么问题。

我这边主要还是涉及到需要在界面上设置网络,比如ip,GSM通信,等需要进行设置。

不知道这种用QT设置,还有显示怎么做。

考虑到dyw说的那种方法,我想对于获取数据C进程发来的数据应该没问题,但是,我的那个C系统启动之后,

就需要和外界通讯,通过网络,那么就需要用界面上去设置。到现在还没有什么头绪。
谭海燕 2010-03-04
  • 打赏
  • 举报
回复
引用 14 楼 hairetz 的回复:
c项目写的东西只需要把界面部分用Qt实现,其他可以原封不动,我以前改过一个小东西就是这样。


哦?太好了,我现在正着急了,如果全部重写用QT实现,我现在时间也来不及。希望您能指点

我QQ:46231244

MSN:feiyinzilgd@hotmail.com
  • 打赏
  • 举报
回复
c项目写的东西只需要把界面部分用Qt实现,其他可以原封不动,我以前改过一个小东西就是这样。
谭海燕 2010-03-03
  • 打赏
  • 举报
回复
引用 12 楼 dyw 的回复:
补充一下:前一个做法实际就是把原来的console输出重定向到QPrintBuffer中;然后Qt界面程序从QPrintBuffer取用数据。还可在print方法中触发一个signal,实时显示。



恩,好的。我先试试。
dyw 2010-03-03
  • 打赏
  • 举报
回复
补充一下:前一个做法实际就是把原来的console输出重定向到QPrintBuffer中;然后Qt界面程序从QPrintBuffer取用数据。还可在print方法中触发一个signal,实时显示。
dyw 2010-03-03
  • 打赏
  • 举报
回复
引用 9 楼 feiyinzilgd 的回复:
不知道您说的把输出部分改成输出到界面是怎么实现的?

文件还是??

谢谢

你可以写一个Qt类,比如叫做QPrintBuffer,提供一个方法print(char* key, char* value);
key用于指明是哪个字段,以便决定在界面上的显示;
value便是原来你在console输出的各个数据了。

此外,或可以使用dbus。把原来的输出改为输出到dbus,Qt界面程序从dbus获取数据。
BeRoy 2010-03-03
  • 打赏
  • 举报
回复
搜索:进程间通讯。。。
谭海燕 2010-03-03
  • 打赏
  • 举报
回复
不知道您说的把输出部分改成输出到界面是怎么实现的?

文件还是??

谢谢



引用 2 楼 dyw 的回复:
不必完全重写。只需把输出部分改成输出到界面上就行。
programmerhuang 2010-02-28
  • 打赏
  • 举报
回复
这个要看你原来程序的结构, 好的结构不需要做什么改动, 不好的结构, 改动就大了.
强天放 2010-02-28
  • 打赏
  • 举报
回复
另外用QT写个独立的程序,利用共享内存和原来的程序通信。
原来的程序需要加入共享内存的代码,应该不需要改动多大吧?
不知这样可行否?
谭海燕 2010-02-28
  • 打赏
  • 举报
回复



一招回到解放前。。


算了,把用QT改写吧。我觉得不管怎么改还是不能提高实时性。



  • 打赏
  • 举报
回复
我有个思路,就是让原来系统输出的数据,转到让Qt输出就可以了,用QProcess看看,不行就用Qt IO方面的类试试
MicroSky2813 2010-02-27
  • 打赏
  • 举报
回复
引用 3 楼 feiyinzilgd 的回复:
引用 2 楼 dyw 的回复:
不必完全重写。只需把输出部分改成输出到界面上就行。

恩,你好,我也在研究输出到界面,但是什么方式好呢?

Qt界面重开一个进程,但是,如何得到数据呢?关键是考虑到实时性,如果是进程通信之类的方式,

我估计是会导致数据不够实时性,而且很可能会阻塞。

还有一点,界面会对整个系统做出简单的控制,比如输入信息,键盘锁定啊。。

请问这该怎么处理?

我估计只能一定程度上的实时,将原来的数据传给QT,QT再用相应的widget之类显示就行了,输入信息锁定麻烦点,用C实现吧
谭海燕 2010-02-27
  • 打赏
  • 举报
回复
引用 2 楼 dyw 的回复:
不必完全重写。只需把输出部分改成输出到界面上就行。


恩,你好,我也在研究输出到界面,但是什么方式好呢?

Qt界面重开一个进程,但是,如何得到数据呢?关键是考虑到实时性,如果是进程通信之类的方式,

我估计是会导致数据不够实时性,而且很可能会阻塞。

还有一点,界面会对整个系统做出简单的控制,比如输入信息,键盘锁定啊。。

请问这该怎么处理?

dyw 2010-02-27
  • 打赏
  • 举报
回复
不必完全重写。只需把输出部分改成输出到界面上就行。

谭海燕 2010-02-27
  • 打赏
  • 举报
回复



莫非此贴没人回答?

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧