gpt4 book ai didi

python - 如何提升最小化或被 PyGObject 覆盖的窗口?

转载 作者:太空狗 更新时间:2023-10-30 00:46:25 28 4
gpt4 key购买 nike

我一直在使用 PyGTK FAQ 中提供的答案,但这似乎不适用于 PyGObject。为了您的方便,这里有一个适用于 PyGTK 的测试用例,然后是一个不适用于 PyGObject 的翻译版本。

PyGTK 版本:

import gtk

def raise_window(widget, w2):
w2.window.show()

w1 = gtk.Window()
w1.set_title('Main window')
w2 = gtk.Window()
w2.set_title('Other window')

b = gtk.Button('Move something on top of the other window.\nOr, minimize the'
'other window.\nThen, click this button to raise the other'
'window to the front')
b.connect('clicked', raise_window, w2)

w1.add(b)

w1.show_all()
w2.show_all()

w1.connect('destroy', gtk.main_quit)
gtk.main()

PyGObject 版本:

from gi.repository import Gtk

def raise_window(widget, w2):
w2.window.show()

w1 = Gtk.Window()
w1.set_title('Main window')
w2 = Gtk.Window()
w2.set_title('Other window')

b = Gtk.Button('Move something on top of the other window.\nOr, minimize the'
'other window.\nThen, click this button to raise the other'
'window to the front')
b.connect('clicked', raise_window, w2)

w1.add(b)

w1.show_all()
w2.show_all()

w1.connect('destroy', Gtk.main_quit)
Gtk.main()

当我在 PyGObject 版本中单击按钮时,另一个窗口没有出现,我得到这个错误:

Traceback (most recent call last):
File "test4.py", line 4, in raise_window
w2.window.show()
AttributeError: 'Window' object has no attribute 'window'

所以我想一定有其他方法可以在 PyGObject 中获取 Gdk.window?

或者是否有一些不同/更好的方法来实现相同的目标?

有什么想法吗?

最佳答案

如本 post 中所述,有两种选择:

暂时升高窗口(可能是您正在寻找的):

def raise_window(widget, w2):
w2.present()

永久升高窗口(或直到配置明确更改):

def raise_window(widget, w2):
w2.set_keep_above(True)

关于python - 如何提升最小化或被 PyGObject 覆盖的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9054462/

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