- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我最近创建了一段代码,当我关闭它时,它总是向我显示类似这样的消息两次:
(python:11712): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a child that doesn't believe we're it's parent.
我想要的是摆脱这个警告。这段代码重现了这种行为(该消息在关闭时出现一次):
import wx
class MyFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, title="Sample")
menuBar = wx.MenuBar()
filemenu = wx.Menu()
filemenu.Append(wx.ID_ANY,"&Pass")
menuBar.Append(filemenu,"&File")
self.SetMenuBar(menuBar)
app = wx.PySimpleApp()
frame = MyFrame(None)
frame.Show()
app.MainLoop()
它工作得很好,但是当我关闭应用程序时会出现警告消息。这是一条仅适用于 Linux 的消息,当我在 Windows 上尝试时,什么也没有出现。
我使用的解决方法是在我的框架中绑定(bind)一个关闭事件处理程序
def __init__(self, parent):
... # Previous code here
self.Bind(wx.EVT_CLOSE, self.OnClose)
并将事件处理程序设置为
def OnClose(self, evt):
for menu in self.GetMenuBar().GetMenus(): # (wx.Menu, caption) tuples
menu[0].Destroy() # Bad parents won't remove you, you'll DIE before!!!
evt.Skip()
在 Linux 上的那个简单应用程序中工作正常,但是当我在 Windows 上尝试时它崩溃了。所以我想看看在 Linux 上运行时发生了什么,替换该行
menu[0].Destroy()
至
print menu[0].Parent
它向我显示“无”作为答案。但我没能做到:
menu[0].Parent = self
两者都不是:
menu[0].Parent = self.GetMenuBar()
由于两者都会引发 TypeError:
TypeError: in method 'Menu_SetParent', expected argument 2 of type 'wxMenu *'
最佳答案
这是一个 GTK 警告。您可以通过 running 来调试它(使用 gdb
以及 Gtk 和 Glib 库的调试变体 - 例如 Ubuntu 或 Debian 上的 libgtk-3-0-dbg
和 libglib2.0-0-dbg
软件包)。与环境变量
export G_DEBUG=fatal-warnings
我不知道这个 bug 是在 Gtk 本身、WxWidget、Python 的 C 胶水中还是在你的 Python 代码中。
关于windows - LIBDBUS 菜单-GLIB-警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11598159/
我最近创建了一段代码,当我关闭它时,它总是向我显示类似这样的消息两次: (python:11712): LIBDBUSMENU-GLIB-WARNING **: Trying to remove a
鉴于 libdbus-1 是不可协商的,我想为 DBus 属性实现 Get 和 GetAll。 我真的没有看到任何这方面的例子。 我只需将该方法与 dbus_message_is_method_cal
我有一个简短的测试程序,用于确定如何将 D-Bus 与 libdbus-c++ 库一起使用。我正在尝试连接到 wpa_supplicant D-Bus API(已记录 here)以读取 WiFi AP
我在我的 VPS centos 7 上安装了 libreoffice5.1.3 当我尝试启动 libreoffice 时,它显示以下错误 libreoffice5.3 javaldx:找不到 Ja
我按照 this script 在我的 AWS EC2 实例上安装了 libreoffice .安装成功,但是当我尝试转换文件时: /opt/libreoffice5.3/program/soffic
[root@maomao bin]# find /usr/local/lib -name libdbus-1.so.3 /usr/local/lib/libdbus-1.so.3 [root@maom
我是一名优秀的程序员,十分优秀!