【问题标题】:wxWidgets trouble when trying to use EnableCheckBoxes() maybe CMake mistake尝试使用 EnableCheckBoxes() 时出现 wxWidgets 问题,可能是 CMake 错误
【发布时间】:2017-06-16 09:00:34
【问题描述】:

我在尝试 wxListCtrl::EnableCheckBoxes 时遇到了一些麻烦。

编译时我得到:class wxListCtrl has no member named 'EnableCheck Boxes

它应该可以工作,因为就像official wiki 上所说的那样 wx 小部件,它应该从 3.1.0 开始可用。

一些可能的麻烦来源:

  1. wiki 上似乎有错字,似乎是 Enable CheckBoxes 而不是 EnableCheckboxes(我每次都在测试)

  2. 我不完全确定我的 Cmake 使用了好的 wxwidget 版本(但我不知道如何检测 (wx-config --versionreturns 3.1.0)

  3. 在 CMakeFile 中,我有一个 FIND_PACKAGE(wxWidgets REQUIRED)(我不确定它是否找到了好的版本)

  4. 我必须自己构建库,结果 *.so 位于 /usr/local/lib(make install 后的默认位置),但我不确定它们是否在好位置

在需要使用EnableCheckB/boxes之前,我已经有一个wxwidget,所以我不确定cmake使用的是什么版本

最后,这是我的使用方法:

void f(wxListCtrl* Table)
{
    Table->DeleteAllItems();
    Table->EnableCheckBoxes(); //or Checkboxes, same result
}

有人有想法吗? 谢谢!

【问题讨论】:

标签: c++ linux cmake wxwidgets


【解决方案1】:

该方法在 3.1.0 中被称为 EnableCheckboxes(),但是为了与 wx API 的其他部分保持一致,它后来被重命名为 EnableCheckBoxes()。所以如果你真的用3.1.0,你应该有前者。

如果您不确定您使用的是哪个版本,您可以在编译期间使用wxCHECK_VERSION(x,y,z) 宏检查这一点。或者你也可以看看wx/version.h

【讨论】:

  • 谢谢!现在,我知道 Cmake 使用的是 wxwidgt 2.8.12,所以我必须找到如何让 cmake 搜索 3.1.0
猜你喜欢
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-26
相关资源
最近更新 更多