Qt使用pkexec 和QProcess对其进行提权
如果直接使用QProcess执行pkexec命令的话你会发现 会出现无法连接display问题
而加上env display环境变量执行 依旧会报错xcb问题 需要使用process write以下代码完美解决
QProcess process;
process.start("/bin/bash");
process.waitForStarted();
process.write(QString("pkexec env DISPLAY=:0 XAUTHORITY=~/.Xauthority \"%1\"\n").arg(QCoreApplication::applicationFilePath()).toLatin1());
process.waitForFinished();