Qt程序怎样让linux进入待机状态?
[size=24px]我想在Qt界面的一个按钮按下后,使arm板上的linux进入待机状态,如果有某些外部中断发生,马上就能启动并显示界面,尝试了一下两种方式,都有问题:
第一种方式:
在按钮的槽函数中执行函数 system("echo standby > /sys/power/state");
之后Qt程序似乎一直在等待system函数返回,使用ps命令可以看到两个进程:
1,sh -c echo standby > /sys/power/state
2,echo standby
然后kill上面第2个进程后,进入待机状态,显示屏不再显示.
点击触摸屏后,系统唤醒,显示正常.
这种方式的问题就是上面说的需要kill第2个进程后才能进入待机状态.
第二种方式:
在按钮的槽函数中,改为以下代码:
QFile file("/sys/power/state");
if (file.open(QIODevice::ReadWrite))
{
char *cmd = "standby";
file.write(cmd);
file.close();
}
else
{
qDebug() << "standby failed";
return;
}
这种方式能够立即进入待机状态,
但是,点击触摸屏唤醒系统后,闪现了一下Qt界面,然后界面就黑了,左上角光标跳动.
而Qt程序事实上仍在运行(因为还在处理其它的事情);
然后不重启板子,kill掉Qt程序,第二次启动Qt程序后,不停地待机,唤醒都是没有问题的.
请教大家,Qt程序怎样让linux进入待机状态,而免掉上面的问题呢?
非常感谢!!!