C++ 如何基于QProcess将窗口设置为活动窗口? #包括“mainwindow.h” #包括“ui_main window.h” #包括 #包括 #包括 #包括 bool start=false; QString路径; 主窗口::主窗口(QWidget*父窗口): QMainWindow(父级), 用户界面(新用户界面::主窗口) { 用户界面->设置用户界面(此); 用户界面->状态栏->显示消息(“等待输入…”); QFile文件(“path.txt”); 如果(!file.open(QIODevice::ReadOnly)){ QMessageBox::信息(0,“错误”,file.errorString()); } 文件中的QTextStream(&F); path=in.readLine(); file.close(); } MainWindow::~MainWindow() { 删除用户界面; } void main window::在按钮上点击按钮 { qApp->exit(); } 无效延迟(整数n) { QTime dieTime=QTime::currentTime().addSecs(n); while(QTime::currentTime()plaintextededit->toPlainText().toInt(); QTime launchTime=QTime::currentTime().addSecs(waitSecs); 而(等待秒>0){ waitSecs=QTime::currentTime().secsTo(启动时间); ui->statusBar->showMessage(QString(“等待%1秒以启动BLR启动器”).arg(waitSecs)); 延迟(1); } 用户界面->状态栏->显示消息(“启动BLR启动器!”); QProcess*process=新的QProcess(此); process->start(path,QStringList()
不要在对QProcess::start的调用中直接调用可执行文件,而是将其用作操作系统中相关打开命令的参数 例如,在OSX中,我会使用C++ 如何基于QProcess将窗口设置为活动窗口? #包括“mainwindow.h” #包括“ui_main window.h” #包括 #包括 #包括 #包括 bool start=false; QString路径; 主窗口::主窗口(QWidget*父窗口): QMainWindow(父级), 用户界面(新用户界面::主窗口) { 用户界面->设置用户界面(此); 用户界面->状态栏->显示消息(“等待输入…”); QFile文件(“path.txt”); 如果(!file.open(QIODevice::ReadOnly)){ QMessageBox::信息(0,“错误”,file.errorString()); } 文件中的QTextStream(&F); path=in.readLine(); file.close(); } MainWindow::~MainWindow() { 删除用户界面; } void main window::在按钮上点击按钮 { qApp->exit(); } 无效延迟(整数n) { QTime dieTime=QTime::currentTime().addSecs(n); while(QTime::currentTime()plaintextededit->toPlainText().toInt(); QTime launchTime=QTime::currentTime().addSecs(waitSecs); 而(等待秒>0){ waitSecs=QTime::currentTime().secsTo(启动时间); ui->statusBar->showMessage(QString(“等待%1秒以启动BLR启动器”).arg(waitSecs)); 延迟(1); } 用户界面->状态栏->显示消息(“启动BLR启动器!”); QProcess*process=新的QProcess(此); process->start(path,QStringList(),c++,qt,window,focus,qt5,C++,Qt,Window,Focus,Qt5,不要在对QProcess::start的调用中直接调用可执行文件,而是将其用作操作系统中相关打开命令的参数 例如,在OSX中,我会使用 #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMessageBox> #include <QTextStream> #include <QTime> #include <QProcess> bool started = false; Q
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QTextStream>
#include <QTime>
#include <QProcess>
bool started = false;
QString path;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->statusBar->showMessage("Waiting for input...");
QFile file("path.txt");
if(!file.open(QIODevice::ReadOnly)) {
QMessageBox::information(0, "Error", file.errorString());
}
QTextStream in(&file);
path = in.readLine();
file.close();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_2_clicked()
{
qApp->exit();
}
void delay(int n)
{
QTime dieTime = QTime::currentTime().addSecs(n);
while(QTime::currentTime() < dieTime)
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
void MainWindow::on_pushButton_clicked()
{
if(!started) {
started = true;
qint32 waitSecs = ui->plainTextEdit->toPlainText().toInt();
QTime launchTime = QTime::currentTime().addSecs(waitSecs);
while(waitSecs > 0) {
waitSecs = QTime::currentTime().secsTo(launchTime);
ui->statusBar->showMessage(QString("Waiting %1 seconds to launch BLR launcher.").arg(waitSecs));
delay(1);
}
ui->statusBar->showMessage("Launching BLR launcher!");
QProcess *process = new QProcess(this);
process->start(path, QStringList() << "");
}
}
如果您使用的是Windows,我相信会有一个类似的版本,可能使用:
process->start("open programToRun.app");
Hoep这很有帮助。对不起,我不理解你的评论。我以为你希望从Process启动的应用程序在启动时获得关注?
process->start("cmd programToRun.exe").