2016-01-30 81 views
1

我有一個帶有選項卡的對話框,每個選項卡都有一些檢查塊和輸入塊。將焦點設置到第一個部件

我想如果我沒有設置任何焦點順序,順序是按照添加這些小部件的順序來定義的。最初的訂單我很好。

在用戶選項卡並更改焦點後,我想將焦點重置回第一個小部件。由於構件樹是自頂而下構建的,我想我可以遍歷每個構件節點的子節點以查找第一個構件。

有沒有更好的方法呢?孩子們會按照他們添加的順序存儲嗎?

+0

什麼時候你想要返回焦點?你知道你想要關注的確切小部件還是沒有,只是依靠它是什麼?每當用戶按下標籤頁時是否要返回焦點?所以沒有別的東西會得到重點? –

+0

我想我知道哪個小部件應該有焦點。如果是這樣,我可能只想設置該小部件的焦點。 –

回答

0

您可以使用QWidget::nextInFocusChain方法檢索必須獲得焦點的第一個小部件。

+0

我認爲API只告訴我們下一步的重點是什麼,但我們不知道最初的第一個焦點是誰? –

+0

據我所知,你是對的,你必須有一些關於它的事先信息。我在切換到DB生成的UI時使用了這種方法,所以我不知道第一個小部件,但我知道前一個('保存'按鈕或類似的東西)。 – cbuchart