【问题标题】:import a tkinter widget in wxpython application as a panel将 wxpython 应用程序中的 tkinter 小部件作为面板导入
【发布时间】:2014-09-02 11:52:31
【问题描述】:

我使用 Tkinter 的画布小部件创建了一个模拟 rpm 仪表,我想将它导入 wx GUI 应用程序(也许作为一个面板)。有什么办法吗,或者我必须在 wx 中重写这个小部件?

【问题讨论】:

    标签: python user-interface tkinter wxpython


    【解决方案1】:

    没有(简单的)方法可以做到这一点 - WxWidgets 是对不同系统中不同工具包的抽象,并使用不同的主循环功能,而 Tkinter 有自己的主循环 - 即开始。

    因此,完成这项工作至少需要:

    1. 您将设置不同的线程来运行两个主循环 并行,
    2. 找到一种方法让 Tkinter 将小部件呈现到 在内存位图中
    3. 在 wx 中创建一个自定义小部件,该小部件将呈现 该位图到屏幕上
    4. 并将其上的事件映射回 Tkinter,如果 它应该响应事件

    所以你肯定最好再次编写小部件。

    【讨论】:

      【解决方案2】:

      WxPython 有一个速度计小部件,只需使用它即可。

      import wx.lib.agw.speedmeter
      

      【讨论】:

        【解决方案3】:

        您必须在 wxPython 中重写小部件,或者找到一个与 wx 中已包含的功能相同的小部件。 Tkinter 是一个完全不同的 GUI 工具包,它绘制自己的小部件并基于 TCL,而 wxPython 是基于 C++ 的 wxWidgets 的包装器。将一个小部件从 Tkinter 嵌入到 wxPython 中并不容易。

        正如 Yoriz 提到的,您也许可以在 wxPython 中使用速度计小部件。查看 wxPython 演示包,因为它将向您展示如何使用该小部件以及 wxPython 的大多数其他小部件。希望你能找到已经包含的东西。否则,您可能需要查看以下页面:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-01-03
          • 2022-01-17
          • 2023-03-15
          • 2021-01-08
          • 2020-11-17
          • 1970-01-01
          • 2013-10-23
          相关资源
          最近更新 更多