簡體   English   中英

重新打開GTK窗口后無法訪問文本輸入框

[英]Cannot access text entry box after reopen the GTK window

首先,這個問題只發生在WIN7中,它通常在raspberry pi(Debian Linux)下。

我有兩個窗口,主窗口和一個子窗口。 主窗口有一個可以激活子窗口的按鈕。 子窗口有一個可以輸入字符串的文本輸入框。 問題是在第一次激活子窗口時,文本輸入框功能正常。 但是當子窗口關閉並重新打開時,文本輸入框似乎被禁用,無法輸入任何文本,即使set_text(“xx”)函數也無法將任何文本寫入其中。

詳細步驟如下:

  1. 運行py腳本

  2. 單擊主窗口上的按鈕以打開子窗口。 我試過以下三種方法,似乎它們有同樣的問題:

     def on_button_clicked(self, widget, data=None): self.child_window.present() #self.child_window.show() #self.child_window.show_all() 
  3. 現在打開子窗口並且文本輸入框功能正常,我可以在其中鍵入任何文本。

  4. 關閉子窗口。 我已將刪除信號綁定到子窗口。 因此,每次關閉子窗口時,將執行以下函數,這將隱藏當前子窗口。

     def on_WindowOfScanning_delete_event(self, widget, data=None): self.child_window.hide() return True 
  5. 現在主窗口處於焦點位置,然后單擊按鈕再次激活子窗口。

     self.child_window.present() 
  6. 現在出現子窗口,但文本輸入框似乎已禁用。

任何人都可以幫我解決這個問題? 贊賞...

版本信息是:Python 2.7.3 GTK 2.24.2,我使用glade來管理GUI界面。

=================同一個問題有一個不同的例子:=====================

http://www.pygtk.org/pygtk2tutorial/sec-TextEntries.html#entryfig

這個鏈接是pygtk的官方例子。 在我的WIN7(64位)系統上運行時,自第一次打開以來無法編輯文本輸入框。 但是,如果您移動鼠標以激活其他窗口,然后返回此gtk窗口,則可以編輯文本輸入框。 我不確定這是否是pygtk的錯誤。

我用pygtk2.24.2-all-in-one嘗試了python 2.6.6和2.7.3。

=================這個問題的解決方案:=====================

似乎沒有人有這樣的問題,所以我發布自己的解決方案。

1,放棄使用window.hide()函數。

2,每次完成其工作時銷毀子窗口,並再次重新啟動gtk.Window以調用子窗口。 這是一個簡單的例子:

#!/usr/bin/env python

import pygtk
pygtk.require( "2.0" )
import gtk

class PopupExample(gtk.Window):
    def __init__( self ):
        gtk.Window.__init__(self)
        self.connect("destroy", lambda *w: gtk.main_quit())
        button = gtk.Button("Popup Window")
        button.connect("clicked", self.show_popup_window)
        self.add(button)

    def show_popup_window(self, button):
        popup = gtk.Window()
        popup.add(gtk.Entry())
        popup.show_all()

if __name__ == "__main__":
    pe = PopupExample()
    pe.show_all()
    gtk.main()

我在gnucashinkscape遇到了同樣的問題,我通過進入Control Panel -> Locales and Languages and set format to English(US)解決了這個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM