2016-02-02 78 views
0

我正在嘗試在Gtkada中創建一個簡單的測試程序,以便在離開特定文本框時調出對話框。我已經管理了這部分,但在按下對話框的「確定」按鈕時,將焦點重置回原始文本框時出現問題。 一般的想法是用戶在文本框中輸入內容,當他們點擊/選項卡(焦點輸出事件)時,會進行一些簡單的字母數字驗證。如果驗證失敗,則用戶使用對話框發出警告,並將焦點返回到他們輸入錯誤數據的文本框中。 我之後的所有內容都是一個簡單的示例,說明如何在關閉最初調用的文本框之外的對話框時將焦點設置迴文本框。在Gtkada ...我使用Gtkada 2.2版本。我無法更改Gtkada的版本,或者使用不同的程序或語言! 非常感謝!在Gtkada中設置窗口焦點

+0

發佈最簡單可能的代碼在這裏顯示此問題... –

+0

已經有一次會議,並且已經決定我們將按照點擊按鈕完成驗證檢查。不需要重點移動/設置。謝謝! –

回答

1

最完美的解決方案,GUI,明智的,是做在每個輸入字段生成leave_event驗證,並且如果失敗顯示錯誤消息(在紅色或一些這樣的)旁邊的場。但不要顯示對話框或將焦點強制到特定字段,這會干擾用戶正在嘗試執行的操作(想象一下:我輸入了不正確的電子郵件地址,按Tab鍵,出現我沒有閱讀的對話框(如大多數用戶),開始爲下一個字段輸入我的名字,但由於焦點回到了電子郵件地址,所以我沒有重寫那個,並丟失了我以前的輸入)。

如果你仍然想抓住焦點,Gtk.Widget.Grab_Focus是你想要的程序。

+0

感謝您的回答。不幸的是,我自己會得出大部分結論,但我對30年來形式約定所能產生的結果相當有限。那些將要使用這個模擬器面板的人期望我產生的和以前的Sim面板之間有一定的相關性。我相信我們現在要進行'all in one''發送'按鈕單擊有效性檢查和對話框,並顯示一條消息,告訴用戶哪些字段是錯誤的。不會發生場焦點變化,因此不會出現用戶期望光標所在的位置。再次感謝 –