【问题标题】:What is an event table (wxWidgets)?什么是事件表(wxWidgets)?
【发布时间】:2020-07-09 01:54:59
【问题描述】:

究竟什么是事件表,它有什么作用?我问的是 wxWidgets,但它可能是一个通用的 GUI 编程概念,所以请纠正我。

【问题讨论】:

标签: c++ wxwidgets


【解决方案1】:

为简单起见,eventd 表告诉了在哪个事件发生时调用哪个函数。

但是,这是一种将事件映射到函数的旧方法。 它不再被推荐,因为它不是很灵活,并且使用宏技巧来完成它的工作。 宏本身在 C++ 中通常不是很推荐。

除非你必须坚持使用 C++03,否则你不应该再使用事件表。 相反,您应该对 C++11 或更高版本中的 New WXWidgets 项目使用 bind 方法。 绑定更灵活,不用宏。

您也可以在 WXWidgets 教程中找到此建议。 但是,您仍然必须能够阅读和理解旧的事件表,因为许多示例已经很久没有更新了。

【讨论】:

    【解决方案2】:

    一个事件表告诉 wxWidgets 将事件映射到成员函数。它应该在 .cpp 文件中定义。

    wxBEGIN_EVENT_TABLE() 
    

    是一个宏的例子

    【讨论】:

    • 谢谢!追问:为什么wxBEGIN_EVENT_TABLE函数语句后不需要冒号?
    • 如果您有新问题,请直接提出,即使用新帖子。话虽如此,这里的问题应该充分研究,而不仅仅是几句话。你应该花更多的时间在他们身上。
    • 这也不是一个函数,我认为你的意思是分号
    • 是的,我以为他的意思是分号。
    【解决方案3】:

    除了其他答案,我想说的是,如果您开始学习 wxWidgets,您应该知道事件表是处理事件的传统方式,并且使用 Bind() 是首选方式它在新代码中。

    特别是,Bind() 的“魔力”要小得多,并且不使用任何宏。

    【讨论】:

      猜你喜欢
      • 2019-05-29
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      相关资源
      最近更新 更多