C++ QT小部件应用程序的用户输入

C++ QT小部件应用程序的用户输入,c++,qt,qprocess,C++,Qt,Qprocess,我有一个QT小部件,它可以作为我正在运行的外部进程的GUI。我正在代码中手动设置此可执行文件的路径。我希望允许用户从GUI指定可执行文件的路径。我的想法是让用户在某个行编辑框中输入路径,一旦输入路径,它就会将路径保存到一个名为program_path的变量中。这样,当我使用此变量调用进程时,它允许用户选择要运行的可执行文件。我搜索过互联网,也搜索过堆栈溢出,但没有找到与我尝试解决方案所做的工作相关的内容。我希望有人能为我指明正确的方向,告诉我如何实现这一点。有什么建议使用的QT类或小部件吗?提前

我有一个QT小部件,它可以作为我正在运行的外部进程的GUI。我正在代码中手动设置此可执行文件的路径。我希望允许用户从GUI指定可执行文件的路径。我的想法是让用户在某个行编辑框中输入路径,一旦输入路径,它就会将路径保存到一个名为program_path的变量中。这样,当我使用此变量调用进程时,它允许用户选择要运行的可执行文件。我搜索过互联网,也搜索过堆栈溢出,但没有找到与我尝试解决方案所做的工作相关的内容。我希望有人能为我指明正确的方向,告诉我如何实现这一点。有什么建议使用的QT类或小部件吗?提前感谢您的帮助

您的想法不适用于外部进程的GUI。。。我希望允许用户指定可执行文件的路径。 如果您以这种方式使用应用程序,那么您应该会遇到麻烦。因为给用户那么多的程序控制权是不好的

QProcess
可用于运行外部应用程序,但您需要控制代码内部。。不同的可执行文件以不同的方式运行(有些是命令行,有些是GUI…等等),并接受不同的输入(有些可执行文件运行时没有用户输入或切换,有些需要命令行参数…等等),它们的输出也不同(有些应用程序需要权限,它们以不同的方式给出结果)

其次,用户通常对最终结果感兴趣,而不记得许多可执行文件的名称和使用细节

因此,实际上,在代码中隐藏调用每个进程的细节时,为用户提供一个选择请求列表(每个请求对应于一个可执行文件)可能更合适

为此,您需要一个
QComboBox
来向用户显示他们有哪些选项,并根据用户选择运行完成操作所需的
QProcess

毕竟,从
QLineEdit
QCombobox
获取字符串非常简单:

QString action = QLinedit::text();
QString action = QComboBox::currentText();
您可能还需要显示另一个基于初始用户选择的选择过程,该过程需要用户提供更多输入,并最终构建
QProccess

用户提供了所有详细信息。

要允许用户选择文件或存储库,我建议使用QFileDialog类()。非常方便

代码应该如下所示:

    QFileDialog *_DialogWindow = new QFileDialog(this); // Creates a dialog window.
    bool result = _DialogWindow->exec();   // Window opens. User select something in his file system. Instructions returns only once he's done.
    if( result ) {
        _exePath = _DialogWindow->selectedFiles().first() ; // Get the path that was selected
    }

您可能需要在QFileDialog对象上设置一些标志,以指定应选择哪种类型的文件(.exe)(在您的情况下)

您的说明中已经有了解决方案,您实现了吗?您在实施过程中有任何问题吗?我不确定此解决方案是否是解决问题的最佳方式。我不确定是否可以将用户输入保存到QT的GUI界面中的字符串变量中。首先尝试一下,我不知道您想要什么样的神奇响应,您的问题很简单,每个任务都不昂贵,因此更好的解决方案不会对性能产生太大影响。