wxwidgets - 如何改变wxFreeChart中的系列颜色和画笔?

标签 wxwidgets

我在我的项目中使用wxFreeChart库。但是我无法更改 XY 数据系列中的颜色和线条类型。在文档和示例中都没有此类功能的示例。而且也没有简单的函数可以做到这一点。有没有人有这个库的经验来说明它是否可能?

最佳答案

是的,可以为 XY 折线图设置系列颜色和笔类型。

这些属性是通过XYLineRenderer类设置的。该文档确实涵盖了这一点,但您必须单击“列出所有成员”才能查看它们。当前文档可在 XYLineRenderer Members 下找到。 .

对于简单的更改,您可以使用 XYDataset::GetRenderer() 方法访问 XYLineRenderer。这将返回一个 XYRenderer* ,您需要将其转换为 XYLineRenderer* 才能设置画笔类型。当然,您可以先创建 XYLineRenderer* 并将其传递给 XYDataset::SetRenderer 方法。

这是一个例子:

// Set the colour and pen of the first series.
static_cast<XYLineRenderer*>(dataset->GetRenderer())
                ->SetSeriePen(0, new wxPen(*wxRED, 5, wxPENSTYLE_SHORT_DASH));

// Set the colour and pen of the second series.
static_cast<XYLineRenderer*>(dataset->GetRenderer())
                ->SetSeriePen(1, new wxPen(*wxBLUE, 1, wxPENSTYLE_DOT_DASH));

SetSeriePen 出于显而易见的原因仅适用于 XYLineRenderer,但您可以使用 Renderer::SetSerieColour(size_t serie, wxColour *颜色)

注意:我对 wxFreeChart 在这些函数中获取指针的方式不太满意。该项目并未得到积极维护,但我希望在某个时候对其进行 fork 并更新 API,以便与现代版本的 C++ 和 wxWidgets 更加一致。

关于wxwidgets - 如何改变wxFreeChart中的系列颜色和画笔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39064439/

相关文章:

macos - 如何使用 wx 在 mac osx 上设置菜单栏图标

c++ - wxWidgets - 无模式 wxDialog

c++ - 使用 wxWidgets 控制 GUI

c++ - 支持 OpenGL3 的 GUI-Toolkit

c++ - QT 与 wxWidgets

macos - "Enter Full Screen"wxWidgets 中的热键

c++ - 错误 : wx/setup. h:CodeBlocks 上没有这样的文件或目录 wxWidgets

c++ - 自定义 wxTextCtrl 自动完成

linux - wxWidgets 链接问题

python - Py2exe : the exe is created but if you run it you get a Runtime error R6034