【问题标题】:WxPython differences between Windows and LinuxWindows 和 Linux 之间的 WxPython 差异
【发布时间】:2010-10-29 08:30:42
【问题描述】:

我在 WxPython 上找到的教程都是使用 Linux 的示例,但在一些细节上似乎存在差异。

例如,在 Windows 中,小部件后面必须有一个面板才能正确显示背景。此外,教程中看起来不错的一些示例在我的计算机上却无法运行。

那么,您知道它们之间有哪些重要的区别,或者是一个专注于 Windows 的好教程吗?

编辑:我只记得这一点:有谁知道为什么在子类化 wx.App 时需要 OnInit() 方法,而不是更合乎逻辑的 __init__()?

【问题讨论】:

    标签: python windows linux user-interface wxpython


    【解决方案1】:

    我注意到我不久前写的一个小 GUI 中有一些奇怪的特性,但我已经很久没有尝试过,具体细节是一个相当遥远的记忆。你有一些失败的具体例子吗?也许我们可以改进它们并修复错误?

    你试过the official wxPython tutorials吗? ...或者你是在追求更具体的东西吗?

    r.e.你的编辑 - 你应该使用OnInit(),因为你是wx.App的子类(即它是wxWidgets而不是Python的要求)并且wxPython实现是尽可能的,只是wxWidgets的一个包装器。

    [编辑] Zetcode 有a fairly lengthy tutorial on wxPython。我自己没有仔细看,但它可能会有所帮助?

    wxWidgets::wxApp::OnInit() 文档相当清楚:

    这必须由应用程序提供,通常会创建应用程序的主窗口,可选择调用 wxApp::SetTopWindow。您可以使用 OnExit 清理此处初始化的任何内容,前提是该函数返回 true。

    如果 wxWidgets 没有提供通用接口,那么与 Python 的 __init__(self,...) 相比,您必须在 C++ 中(使用构造函数)做不同的事情。使用独立于语言的初始化允许 wxWidgets 端口到其他语言看起来更相似,这应该是件好事吧? :-)

    【讨论】:

    • 我明白,但既然每个面向对象的语言都有构造函数,为什么需要 OnInit()?
    • 顺便说一句,那个教程很短。
    • 这是我正在谈论的教程之一,但无论如何感谢。还是有用的。
    【解决方案2】:

    编辑:我只记得这一点:有谁知道为什么在子类化 wx.App 时需要 OnInit() 方法,而不是更合乎逻辑的__init__()

    我使用OnInit() 来表示对称:还有一个OnExit() 方法。

    编辑:我可能错了,但我认为不需要使用 OnInit()

    【讨论】:

      【解决方案3】:

      我发现了一些小的差异,但不记得全部。这里有两个:

      1) 布局可能会略有不同,例如,当在另一个操作系统中执行时,会导致内容不完全适合在一个操作系统中的窗口中。我还没有调查过这种情况的原因,但是当我使用位置而不是大小来安排事情时,最常发生这种情况。

      2) 我必须在 Windows 中显式调用 Refresh 更多。例如,如果您将一个面板放在另一个面板上,在您调用 Refresh 之前,您不会在 Windows 中看到它的顶部面板。

      我一般来说,我在 Linux 中编写应用程序并在 Windows 中运行它们,并且事情的工作方式非常相似,因此这是一种合理的方法,但对我来说,在操作系统切换后完全直接运行的情况很少见。

      【讨论】:

      • 文档明确指出框架将只包含一个小部件,因此要添加更多小部件,您需要添加面板。至于布局,似乎大多数“最近”的窗口 API 建议您使用 sizers 准自动布局您的表单。一旦你习惯了这个想法,它实际上非常方便。意味着支持用户可能拥有的各种屏幕尺寸所需的工作更少。无论您优化什么大小,大多数用户都会使用不同的字体大小和不同的窗口大小,因此您的细心工作最终会被浪费。
      猜你喜欢
      • 1970-01-01
      • 2014-12-23
      • 2012-09-01
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 2013-12-01
      相关资源
      最近更新 更多