2017-02-26 20 views
0

這是一個有趣的兩個症狀閃爍的光標:PyQt5 - 在同一時間

兩個不同的QLineEdit在同一對話框中的字段都已經在閃爍時,對話本身具有焦點的同時遊標。

video

(目的是爲了阻止在沒有焦點領域中的閃爍,因爲它會導致用戶混淆和潛在的用戶錯誤。)

當您選擇不同的窗口(即從相關對話中移除焦點),其中一個字段仍然有一個閃爍的光標。

當您再次激活該對話框時,兩個字段都會再次閃爍。

如果在任何一個字段中單擊鼠標左鍵,則閃爍的光標將停止在其他字段中,如預期的那樣。

焦點(即捕獲鍵盤輸入的字段)似乎表現得如您所期望的那樣,即一次只有一個字段接收鍵盤輸入。

標籤序列按預期工作。

這是在QtDesigner內建的,但在下游代碼中進行了大量修改。任何想法如何發生?

一些類似的問題討論了具有自己的事件循環的對話框或類似的問題?

+0

這個問題是相當無意義的,除非你能提供[mcve]。 – ekhumoro

+0

我確實認爲有一個例外的例外情況,當症狀非常明確時,創建測試用例的複雜性非常大。顯然,它將觀衆限制在可能看到類似情況的人羣中。 –

+0

沒有代碼太複雜,無法開發測試用例。這只是分而治之的問題。識別特定的錯誤(並研究如何修復)有時可能非常困難,但創建測試用例很容易。 (當然,這是假設你已經排除了平臺/系統特定問題的可能性)。 – ekhumoro

回答

0

通過反覆試驗發現了這個解決方案:只需'打嗝'焦點,即將其設置爲您不想閃爍的那個(本例中爲messageField),然後將其設置爲您想要的那個眨眼(隊場):

self.newEntryWidget.ui.messageField.setFocus() 
self.newEntryWidget.ui.teamField.setFocus() 

我不知道爲什麼會發生這種情況,但它似乎工作。希望別人會覺得這很有用。