簡體   English   中英

使用 QT Widget 應用程序的用戶輸入

[英]User Input with QT Widget Application

我有一個 QT 小部件,它用作我正在運行的外部進程的 GUI。 我正在代碼中手動設置此可執行文件的路徑。 我想允許用戶從 GUI 指定可執行文件的路徑。 我的想法是在用戶輸入路徑的地方有一些行編輯框,一旦輸入路徑,它就會將路徑保存到一個名為 program_path 的變量中。 這樣,當我使用此變量調用進程時,它允許用戶選擇要運行的可執行文件。 我在互聯網上搜索過堆棧溢出,但找不到與我正在嘗試解決方案的工作足夠相關的內容。 我希望有人能指出我如何實現這一點的正確方向。 任何建議使用的 QT 類或小部件? 任何幫助表示贊賞,提前。

您的想法對於外部進程的 GUI並不實用......我想允許用戶指定可執行文件的路徑 如果您以這種方式使用應用程序,那么您應該會遇到麻煩。 因為讓用戶對你的程序有那么多控制權並不好..

QProcess可用於運行外部應用程序,但您需要在代碼內部進行控制……不同的可執行文件以不同的方式運行(有些是命令行,有些是 GUI 等)並接受不同的輸入(有些可執行文件在沒有輸入的情況下運行或來自用戶的開關,有些需要命令行參數......等)並且它們的輸出不同(有些應用程序需要權限,它們以不同的方式給出結果)。

其次,用戶通常對最終結果感興趣,不會記住許多可執行文件的名稱和使用細節。

實際上,它可能更適合使用一個請求列表,每個請求對應於一個可執行文件,同時隱藏在代碼中調用每個進程的細節。

為此,您需要例如一個QComboBox ,向用戶顯示他們有哪些選項,並根據用戶選擇運行QProcess來完成操作。

畢竟,從QLineEditQCombobox獲取字符串很簡單:

QString action = QLinedit::text();
QString action = QComboBox::currentText();

您可能還需要根據初始用戶選擇顯示另一個選擇過程,該過程需要用戶提供更多輸入,並最終使用用戶提供的所有詳細信息構建您的QProccess

為了允許用戶選擇文件或存儲庫,我建議使用 QFileDialog 類( http://doc.qt.io/qt-5/qfiledialog.html#details )。 這很方便。

代碼應如下所示:

    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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM