gpt4 book ai didi

python - 仅在单击屏幕后才会出现窗口

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:06 25 4
gpt4 key购买 nike

我正在使用 pygtk 作为触摸屏计算机上的 GUI 作为机器用户界面。用户可以随时保存机器的实际配置。当他按下“保存配置”按钮时,我实现的虚拟键盘会出现在屏幕上,使他能够输入配置名称。我的问题是,按下“保存配置”按钮后,该键盘不会直接出现。人们应该等待下一次单击屏幕上的任意位置才能使其出现。

这是类键盘:

class keyboard():

def __init__(self):

window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.set_position(1)
window.set_keep_above(True)
window.connect("destroy", lambda w: window.destroy())
window.set_transient_for(self.gui.window) #self.gui.window is the main window
window.set_destroy_with_parent(True)
window.set_skip_taskbar_hint(True)
window.set_skip_pager_hint(True)
window.connect("delete_event",window.hide_on_delete)
window.deiconify()
window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_SPLASHSCREEN)
window.set_size_request(KBD_WIN_WIDTH,KBD_WIN_HEIGHT)
window.set_resizable(False)

table = gtk.Table(rows=5, columns=12, homogeneous=True)
frame = gtk.Frame()
frame.add(table)
window.add(frame)
"""
... code to fill the table with buttons
"""
self.window = window

这是单击“保存配置”按钮后调用的回调函数:

def save_cfg_clicked(self,widget):
keyboard_ = keyboard(self)
keyboard_.window.set_keep_above(True)
keyboard_.window.set_modal(True)
keyboard_.window.show_all()

我尝试过多种方法,例如使用 gobject.idle_add 调用函数 window.show_all,但这并没有帮助。

请注意,我使用的是 xfce 桌面。当程序在Gnome上运行时,不会出现此问题。

最佳答案

删除该行时:

window.set_transient_for(self.gui.window)

问题就消失了。

关于python - 仅在单击屏幕后才会出现窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19000900/

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