您的位置:首页 > 运维架构 > Linux

在linux下用qt打开或直接读取文件及其中的问题!(system(),qfile,qprocess)

2012-08-30 23:19 627 查看
打开文件:

1.

system("/home/qt/HelloWorld/HelloWorld");//直接打开文件。

注:若出现 error: cannot convert 'QString' to 'const char*' for argument '1' to 'int system(const char*)'

是因为system()接收ascii码,一般字符串可以,但加变量就不行(如 tr("iwconfig wlan0 essid %1 ").arg(wifi)),这时把 tr("iwconfig wlan0 essid %1 ").arg(wifi)定义成一个

变量。如wifiConnect。在system(wifiConnect.toAscii())就可以了。

还有个问题就是,打开这个文件,如果这个文件不是全屏,背景色会是绿色!!(看不到主程序)可以用

QWSServer::setBackground(QColor(255,255,255,0));

来改变背景色,但是始终做不到透明效果。这时候要用QProcess!

2.

QProcess *process;

process = new QProcess;

process->setProcessChannelMode(QProcess::ForwardedChannels);

QString address;

QStringList strList;

address ="/curtain";

strList.append(tr("%1").arg(idTransfer));

strList.append("-small-screen");

process->start(address,strList);

完美的无背景效果!

这里也有好几点要注意!

首先同一时间只能有一个process在进行

接着,qstring里不能有空格!如果要带参数用上面qstringlist的方法。

读取文件(文本)并在qt中使用:

QString fileName;

fileName = "/home/c/qt/TestWifi/temp";

QFile file(fileName);

if (!file.open(QIODevice::ReadOnly | QIODevice::Text))

{

qDebug()<<"!";

return;

}

QTextStream in(&file);

QString line = in.readLine();

while (!line.isNull())

{

qDebug()<<line;

line = in.readLine();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐