我有簡單的python3 + gtk3代碼,它連接到dbus並監聽所有事件。當用戶點擊托盤中的圖標時,他必須看到所有顯示了早期事件的窗口。代碼(我不知道在哪裏的問題和代碼大小> 100行):https://github.com/rakshazi/notify-feed/blob/master/main.py重新打開窗口拋出Gtk-CRITICAL **:gtk_widget_get_window:斷言'GTK_IS_WIDGET(widget)'失敗
如何重現:
- 運行
python main.py
L117 - 點擊托盤的應用程序圖標 - 將打開的窗口,如果運行後顯示任何通知,它可以是空的或帶有一些項目。 L83
- 關閉窗口。 L93
- 重試步驟#2,你會看到空的窗口(不包括在所有情況下的任何元素,是的,這是錯誤的,但不要緊,這個問題)
單擊窗體和應用程序將崩潰:
(gui.py:4882):GTK的CRITICAL **:gtk_widget_get_window:斷言 'GTK_IS_WIDGET(插件)' 失敗
[1]
4882段故障(核心轉儲)蟒蛇gui.py
在第一個windowOpen事件和第二個windowOpen事件self.window
對象是<__main__.Window object at 0x7f98b1dcd7e0 (__main__+Window at 0x1502260)>
gdb的結果:
(main.py:17310): Gtk-CRITICAL **: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed
Thread 1 "python" received signal SIGSEGV, Segmentation fault.
0x00007fffea5cd0b8 in gtk_widget_translate_coordinates() from /usr/lib/libgtk-3.so.0
請向我解釋如何調試和解決這個問題。
PS:我是Python新手,這就是爲什麼這個問題可能很愚蠢。
非常感謝! – rakshazi