簡體   English   中英

打印到stderr的Python和GTK3錯誤,它們是什么?

[英]Python and GTK3 errors printed to stderr, what are they?

在我用Glade3應用程序制作的Python 2.7 + GTK + 3 + PyGI + GUI中,出現了很多這樣的錯誤:

(python.exe:81868): Gdk-CRITICAL **: gdk_device_get_source: assertion 'GDK_IS_DEVICE (device)' failed

Python中沒有例外,程序中也沒有任何錯誤。 它們似乎無害,但為了清潔起見,我想阻止它們發生。

我注意到,例如在激活和停用菜單項或更改組合框上的選擇時,就會發生這種情況。 我試圖設置一個回調,該回調對觸發問題的事件不執行任何操作,但不進行任何更改。

那么,它們是什么意思呢? 我該如何阻止他們?

當斷言失敗時,此類消息由使用Glib調試功能的代碼發出,請參見[1]。 這些斷言由Glib和基於Glib構建的許多組件用來報告無效狀態,無效參數等。

通常,此類消息提示某個應用程序中存在錯誤,因此搜索原因是一個好主意。 為此,請使用適當的值導出G_DEBUG環境,請參見[2]。 在您的情況下,應設置G_DEBUG=fatal-criticals ,並且在發出緊急消息時程序將中止。 如果然后在gdb運行應用程序並在程序中止時打印回溯,則應該了解導致消息發出的原因。 切記為glib和gtk / gdk安裝debuginfo軟件包以獲得可用的回溯。

要禁止發出消息,如果您不能解決該問題(可能是因為原因不是您的代碼,而是某些其他庫),則可以查看g_log_set_handler ,請參閱[3]。

暫無
暫無

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

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