【发布时间】:2023-01-24 21:57:27
【问题描述】:
我目前正在设计一个用户界面,该界面需要显示当前日期和时间,并允许用户稍后在设置中编辑当前时间和日期。
我今天已经阅读了很多关于这个问题的文章,但我找不到适合我的解决方案。 我试图通过创建 QProcess 对象并在我的用户界面适用的 linux 设备上执行命令来解决 QProcess 的问题。当我尝试设置时间时,我似乎只是在与“日期”命令作斗争。
这是我当前使用“date”命令更改 linux 设备系统时间的代码。
我的问题是,如果我用“args << ...”行注释运行我的程序,它会显示当前系统时间的 StdOut。但是,如果我使用 args 运行代码并尝试设置时间,对于每种可能的格式,我总是会收到相同的错误消息 StdError "date: invalid date '"Mon Jan 23 09:30:17 UTC 2023"'。我已经尝试了很多不同的格式和变体如何设置时间,但我总是收到相同的错误消息。
QProcess task;
QString command;
QStringList args;
command = "date";
// I tried many different time formats but all of seem to be invalid
args << "--set=\"Mon Jan 23 09:30:17 UTC 2023\"";
task.start(command, args);
task.waitForFinished();
QString StdOut = task.readAllStandardOutput();
QString StdError = task.readAllStandardError();
ui->lineEdit_13->setText(StdOut);
ui->lineEdit_14->setText(StdError);
有谁知道我的问题可能是什么以及如何解决?我肯定不会那么难改变设备的时间。
预先感谢您的回答:)
【问题讨论】:
-
可能需要一个 shell 来执行日期命令?
-
你是什么意思?我怎样才能得到一个壳?
-
应该是
args << "--set=Mon Jan 23 09:30:17 UTC 2023";。引号是针对 shell 的,但您不会在这里查看 shell。 -
@Thomas 我也试过不带引号,它给了我同样的错误信息。我完全放弃了 QProcess 的概念,并使用 dateTimeWidget 找到了一个超级简单的解决方案。