Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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++ 如何基于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

不要在对QProcess::start的调用中直接调用可执行文件,而是将其用作操作系统中相关打开命令的参数

例如,在OSX中,我会使用

#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").