0
我正在設計一個具有按鈕網格的小部件。點擊時,我希望這些按鈕向用戶提供3種選擇(最好在一個小的下拉菜單中),以供用戶選擇。當他們選擇3個選擇中的1個時,我希望選擇該按鈕(即保持按下)。我希望與3個選項中的每一個關聯的QAction能夠知道哪個按鈕被點擊了,這樣我就可以記錄點擊網格中的哪個按鈕。網格中的每個按鈕都必須是獨佔的,並且在選中時。所呈現的3個選擇對於所有按鈕都是相同的。使用QMenu檢查QToolButton
我首先在QGridLayout中使用QButtonGroup和QPushButton。我能夠讓按鈕成爲我想要的獨家。當我改變了按鈕從QPushButton到QToolButton,並增加了一個下拉菜單,發生了兩兩件事:
- 當他們從菜單中選擇項目時,該按鈕不再保持鬱悶像我想它。
- 我似乎無法看到菜單操作被告知選擇了哪個按鈕的方式,所以我無法記錄選擇了哪個按鈕。
有關如何實現我所需功能的任何想法?
編輯:
幾個澄清點:
- 在m×n個網格中的每個按鈕代表一個人。
- 每個按鈕上的下拉列表可讓您選擇該人當前正在執行的操作。
- 只有一個人可以一次做某件事。因此,一次只能按下整個網格中的一個按鈕。
- 選擇按鈕下拉菜單中的項目時應該選中它們,並且這些項目必須是獨佔的,所以如果單擊按鈕兩次,下拉菜單中的新選中的菜單項應該取消選中之前的項目一。
- 當按鈕下拉菜單中的項目被選中時,菜單應該消失,按鈕應該顯示爲壓下。
- 我需要記錄被點擊的按鈕(即行和列)以及從按鈕下拉菜單中選擇的選項。所以不知何故菜單項信號/插槽需要知道哪個按鈕被點擊。但是,QToolButton :: setMenu()不會將菜單的所有權轉移給QToolButton,因此我不確定如何使QMenu的QActions中的信號/插槽知道選擇了哪個按鈕。