gpt4 book ai didi

python - 重新打开 GTK 窗口后无法访问文本输入框

转载 作者:行者123 更新时间:2023-11-28 19:25:27 25 4
gpt4 key购买 nike

首先,这个问题只发生在WIN7下,一般在树莓派(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. 关闭子窗口。我已将删除信号绑定(bind)到子窗口。所以每次关闭子窗口时,都会执行下面的函数,隐藏当前子窗口。

    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 的错误。

我已经尝试过 python 2.6.6 和 2.7.3 与 pygtk2.24.2-all-in-one。

================= 这个问题的解决方法:=====================

好像没有人遇到这样的问题,所以我贴出自己的解决方案。

1、放弃使用window.hide()函数。

第二,每次完成工作后销毁子窗口,并再次重新初始化 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 并将格式设置为 English(US)

解决了这个问题

关于python - 重新打开 GTK 窗口后无法访问文本输入框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14038104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com