【发布时间】:2018-06-29 23:30:14
【问题描述】:
我想在表单中添加QChart。但我在小部件框中找不到它。所以我在代码中创建了它。如何将其插入 QWidget 或 QFrame 或其他内容?
我想在 QtDesigner 中设置那个小部件的区域。
【问题讨论】:
标签: qt qt5 qt-designer qchart qchartview
我想在表单中添加QChart。但我在小部件框中找不到它。所以我在代码中创建了它。如何将其插入 QWidget 或 QFrame 或其他内容?
我想在 QtDesigner 中设置那个小部件的区域。
【问题讨论】:
标签: qt qt5 qt-designer qchart qchartview
我想你的意思是插入一个 QChartView,因为 QChartView 继承自 QGraphicsView,这将是一个不错的选择,为此我们执行以下操作:
QT += charts
Promote to...
Promoted Class Name中设置QChartView,在Header file中设置QtCharts,然后按add按钮,最后按promote .部分步骤截图:
[3.]
[4.1]
[4.2]
同样可以使用QWidget 作为基础而不是QGraphicsView。
为什么选择一个或另一个小部件作为基础?
之所以选择它是因为Qt Designer通过moc默认建立了某些属性,如果widget没有那个方法那么它就不会编译。由于所有小部件都继承自 QWidget,这将是任何新小部件在 Qt Designer 中推广它的基础。
在下面的link你会找到一个例子。
另一种选择是为QtDesigner 编译QtChart 插件,为此您必须从以下link 下载5 个文件:
然后执行以下操作:
qmake
make
sudo make install
最后你可以在Qt Designer中访问QtCharts::QChartView
【讨论】:
chartView.setChart(chart)。
CMakeList.txt 而不是qmake(.pro 文件),则需要在find_package 中添加Charts 作为Qt5 COMPONENT(例如:find_package(Qt5 COMPONENTS Widgets Charts REQUIRED)和target_link_libraries 中的Qt5::Charts (例如:target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets Qt5::Charts)