linux qt process 和system 的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux qt process 和system 的用法相关的知识,希望对你有一定的参考价值。

在qt里面使用system("mplayer -o wav:- ../shanghaitan.mp3 | aplay")能够正常播放mp3,但是这样的调用是阻塞调用,而我不想有阻塞调用,于是采用QProcess *pro = new QProcess; pro->start("madplayer -o wav:- ../shanghaitan.mp3 | aplay");这样的话就不能使用,请教,这个QProcess在qt里面应该怎样使用啊,谢谢帮忙了。

参考技术A QStringList args;
args << "-o wav:";//将你后面的那些参数填充。。可能 是 | aplay这里有问题,你把这个去掉看行不行。

start("mplayer", args);追问

还是不可以, 如果不要| aplay不能用我是想在x86上使用madplay

本回答被提问者和网友采纳
参考技术B 命令行里增加后台运行符号。

用system("command")的时候,改成system("command&")就可以背景运行了。

QT在linux环境下读取和设置系统时间(通过system来直接调用Linux命令,注意权限问题)

QT在Linux环境下读取和设置系统时间

 

本文博客链接:http://blog.csdn.NET/jdh99,作者:jdh,转载请注明.

 

环境

主机:Fedora12

开发软件:QT

 

读取系统时间

 

[cpp] view plain copy
 
  1. void moreidDialog::refresh_time()  
  2. {  
  3.     QDateTime time;  
  4.     txt_time->setText(time.currentDateTime().toString("yyyy") + "." + \  
  5.                       time.currentDateTime().toString("M") + "." + \  
  6.                       time.currentDateTime().toString("d") + "." + \  
  7.                       time.currentDateTime().toString("h") + "." + \  
  8.                       time.currentDateTime().toString("m"));  
  9. }  
读取到分,时间间隔用".",最终读取并显示的效果:2011.12.27.9.14
 
设置系统时间
[cpp] view plain copy
 
  1. //保存时间键  
  2. void moreidDialog::slot_save_time_key()  
  3. {  
  4.     QDateTime time;  
  5.     QString str = txt_time->text();  
  6.     //判断格式是否正确  
  7.     if (str.count(".") != 4)  
  8.     {  
  9.         txt_time->setText(tr("ge shi cuo wu"));  
  10.         return;  
  11.     }  
  12.     int i = 0,j = 0;  
  13.     i = str.indexOf(".");  
  14.     QString year = str.mid(0,i);  
  15.     j = str.indexOf(".",i + 1);  
  16.     QString month = str.mid(i + 1,j - i - 1);  
  17.     i = j;  
  18.     j = str.indexOf(".",i + 1);  
  19.     QString day = str.mid(i + 1,j - i - 1);  
  20.     i = j;  
  21.     j = str.indexOf(".",i + 1);  
  22.     QString hour = str.mid(i + 1,j - i - 1);  
  23.     i = j;  
  24.     j = str.indexOf(".",i + 1);  
  25.     QString min = str.mid(i + 1,j - i - 1);  
  26.     bool ok = false;  
  27.     year.toInt(&ok);  
  28.     if (ok == false)  
  29.     {  
  30.         txt_time->setText(tr("ge shi cuo wu"));  
  31.         return;  
  32.     }  
  33.     month.toInt(&ok);  
  34.     if (ok == false)  
  35.     {  
  36.         txt_time->setText(tr("ge shi cuo wu"));  
  37.         return;  
  38.     }  
  39.     day.toInt(&ok);  
  40.     if (ok == false)  
  41.     {  
  42.         txt_time->setText(tr("ge shi cuo wu"));  
  43.         return;  
  44.     }  
  45.     hour.toInt(&ok);  
  46.     if (ok == false)  
  47.     {  
  48.         txt_time->setText(tr("ge shi cuo wu"));  
  49.         return;  
  50.     }  
  51.     min.toInt(&ok);  
  52.     if (ok == false)  
  53.     {  
  54.         txt_time->setText(tr("ge shi cuo wu"));  
  55.         return;  
  56.     }  
  57.     str = "date -s " + month + "/" + day + "/" + year;  
  58.     system(str.toLatin1().data());  
  59.     str = "date -s " + hour + ":" + min + ":" + "00";  
  60.     system(str.toLatin1().data());  
  61.     //强制写入到CMOS  
  62.     system("clock -w");  
  63. }  
 
同步系统时钟与硬件时钟时间命令:
硬件时钟同步到系统时钟:hwclock --hctosys
系统时钟同步到硬件时钟:hwclock -systohc

http://blog.csdn.net/jdh99/article/details/7102196

以上是关于linux qt process 和system 的用法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Qt 中打开 Linux 下启动进程的控制台窗口?

Linux 下安装QT出现The specified system/compiler is not supported错误

C/C++ - 运行 system("process &") 然后写入它的标准输入

在Ubuntu上运行PPOCRLabel启动错误:FatalError: `Process abort signal` is detected by the operating system.

在Ubuntu上运行PPOCRLabel启动错误:FatalError: `Process abort signal` is detected by the operating system.

linux下oracle数据库由于参数文件丢失导致的数据库服务启动失败,报“failure in processing system parameters“错误问题解决