【问题标题】:wx.TextDropTarget not working in Linuxwx.TextDropTarget 在 Linux 中不起作用
【发布时间】:2011-11-16 15:58:05
【问题描述】:

我有一个使用 wxPython 开发的桌面应用程序。应用程序在 Windows 和 OSX 下运行良好(相同的代码库,没有特定于平台的代码)。除了拖放之外,一切都可以在 Linux 上运行。我可以很好地拖动,但 DoDragDrop 总是返回 wx.DragCancel。但是,我可以从我的应用程序或另一个除文本和 DoDragDrop 返回 wx.DragCopy 的应用程序/桌面拖动。

在我看来,DropTargets 似乎没有被调用。我已将调试语句添加到 OnData 等,但它们从未被激活。

有没有人看到这个并知道解决方法?

【问题讨论】:

  • 我将问题缩小到 wx.StaticBoxSizer。当我的放置目标包含在 StaticBoxSizer 中时,放置目标不起作用!这似乎特定于 linux(我正在运行 ubuntu),因为我对 OSX/WindowsXP 没有任何问题。
  • 欢迎来到 SO。您应该包含一个最小的、功能性的代码来重现您的问题。否则你可能不会得到有用的帮助。我们怎么能从您发布的问题中知道您的问题出在 StaticBoxSizer 上?

标签: linux drag-and-drop wxpython


【解决方案1】:

在 wxWidgets 中发现了一个被认为已修复的已知问题,http://trac.wxwidgets.org/ticket/2763,我可以在 linux 上重新创建此问题。我重新打开了票。

与此同时,您可以交换您的 StaticBoxSizer 或 BoxSizer。或者...

这行得通.... 父 = DropTargetCtrn.GetParent() box = [x for x in parent.GetChildren() if type(x)==wx.StaticBox] tmpParent = wx.Panel(父) 盒中盒: box.Reparent(tmpParent) box.Reparent(父) parent.Destroy()

此解决方案似乎降低了窗口层次结构中的 StaticBox,因此它不会干扰放置事件。注意,box.Lower() 不起作用。

【讨论】:

    猜你喜欢
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    相关资源
    最近更新 更多