2013-02-28 44 views
0

對於我正在編寫的Qt應用程序,我想要列出可點擊的功能,點擊後可以讓用戶提供所需的輸入參數。乾淨而直觀的方式來實現可點擊的字符串列表來調用函數?

什麼我專門找是以下任務提供一個乾淨,直觀的界面控件的選擇:

  • 通過爲執行計算功能的列表用戶滾動(在我的情況,來自glm)。

  • 一旦找到一個函數,用戶點擊該項目;將打開一個彈出窗口,其中指定了所需的輸入參數(例如,vec3,vec4等)。

這裏的想法是,函數本身已經存在:他們只需要一個接口,它概括地說,提供僞翻譯來處理並輸出其結果到GLWidget,將更新相應傳遞的數據通過發送它到相應的着色器。

我已經看過QListView及其Widget變體,但它似乎更適合文件系統數據,如圖像或文本文件,儘管我不太確定。到目前爲止,它似乎是唯一可以在這種情況下被認爲是實際可用的東西。

有沒有推薦的方法來做到這一點?一般來說,我對Qt相當陌生,因此我的知識非常有限。

回答

1

在你的情況下,視圖並不重要。您需要創建/重新使用一個適應的模型。 此模型必須包含您的視圖顯示內容與您要啓動的操作之間的關係。例如,如果您的命令是像bash命令那樣的文本,則可以創建一個顯示「列表文件」,「複製文件」和包含數據的模型(「list files」='ls -l')的視圖。 ),(「複製文件」='ls -l')等。

您可以在不同角色的同一項目中存儲不同的數據(使用QVariant):Qt :: DisplayRole對應於視圖顯示的數據和Qt :: UserRole你想要什麼。因此,如果你只需要存儲一個與名字相關的命令行,你可以用Qt :: DisplayRole和命令行作爲QString(或其他)存儲名稱,使用Qt :: UserRole 。

有關更多信息,請參見QAbstractItemModel :: data()和QAbstractItemModel :: setData()。

相關問題