如何使用Qt 4把ls命令的结果显示到GUI界面上去?-兼回答网友提问

问:您好!想向您请教一些问题!现在在做论文比较急,不知能否请您给指导一下。我的系统是openSUSE 11.1, Qt版本为4.4.3。现想做一个界面,界面上有一个按钮和一个LineEdit文本框,点击按钮的时候就相当于执行了Linux终端上的“ls"命令,然后结果显示到LineEdit文本框中。该怎么去做!我自己也做了一些,但是出现不少问题(Qt知识和C++知识比较缺乏),一直都没有成功!谢谢!

 

 

答:你的问题我理解大致可以分析如下:

 

1.如何在Qt中调用系统命令

2.命令执行后如何将屏幕拷贝到GUI界面上去显示

 

第一个问题可以有两种解决途径:

1.直接调用系统API
    windows下可以使用shellexecute()命令调用其他的程序或命令;
   Linux下可以使用exec()和system()命令,对于初学者推荐使用后者,示例:system("/root/yourname/yourdir/ls");


2.使用QProcess
   可以使用:QProcess::execute ( const QString & program, const QStringList & arguments );   

   具体请可以再查阅一下Qt Assistant

 

第二个问题可以逐步解决,思路如下:
   
    1.首先使用Linux下的输出重定向命令把ls命令的输出重定向到一个设备或者是文件中,示例如下:

    $ ls > directory.out

      这表示将ls命令的输出保存为一个名为directory.out的文件。
    如果>符号后边的文件已存在,那么这个文件将被重写。
    文件的名称和格式你可以自己选定,设定为纯文本文件将又有助于你的下一步的操作。
   
    2.使用Qt中的文件I/O方法,读取这个文件的内容,把它显示到GUI界面上去

    对于你的问题就是把它显示到那个lineEdit,或者可以使用textEdit更好

    具体做法就比较容易了,可以查阅帮助。

    


  

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qter_wd007/archive/2010/02/28/5333460.aspx#1309356

你可能感兴趣的:(windows,linux,api,System,qt,终端)