- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近开始使用 QML,我正在寻找一种方法来将数据从 C++ 提供到 QML 中的 ChartView。我更喜欢一个解决方案,我可以发送一个带有 Q_PROPERTY 之类的 QMap,以便它自动更新。
我搜索并发现您可以执行一个函数,然后您可以使用“append()”向图表添加值。但我似乎无法向 QML 发送某种列表...
QML 文件:
ChartView {
theme: ChartView.ChartThemeQt
antialiasing: true
DateTimeAxis {
id: dateTimeAxisX
}
ValueAxis{
id: valueAxisY
min: 0
max: 15
titleText: "Voltage (V)"
}
LineSeries {
id: voltageSeries
axisX: dateTimeAxisX
axisY: valueAxisY
name: "Battery Voltage"
}
}
机器人.h:
class Robot: public QObject
{
...
Q_PROPERTY(QMap<int, double> list_battery_voltages READ getList_battery_voltages NOTIFY listBatteryVoltagesChanged)
...
}
主要.cpp:
int main(int argc, char *argv[])
{
#if defined(Q_OS_WIN)
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
QApplication app(argc, argv);
QQmlApplicationEngine engine;
// Load custom class inside engine
QScopedPointer<Robot> robot(new Robot(app.applicationDirPath() + "/robot_settings.ini"));
engine.rootContext()->setContextProperty("robot", robot.data());
QQmlComponent component(&engine, QUrl(QLatin1String("qrc:/main.qml")));
component.create();
return app.exec();
}
是否有我监督的优雅解决方案?
最佳答案
我已经使用 QVariantMap
解决了这个问题。它不是最优雅的解决方案,但它有效:)我的 QML 文件中有一个 javascript 函数,用于填充 lineseries。此功能连接到我的机器人信号,该信号将在新数据到达时发送。
机器人.h:
class Robot: public QObject
{
...
Q_PROPERTY(QVariantMap list_battery_voltages READ getList_battery_voltages NOTIFY listBatteryVoltagesChanged)
...
}
QML:
ChartView {
...
Connections {
target: robot
onMapBatteryVoltagesChanged: insertVoltages()
}
Component.onCompleted: {
insertVoltages()
}
...
function insertVoltages() {
var voltages_map = robot.map_battery_voltages
for (var prop in voltages_map) {
voltageSeries.append(prop, voltages_map[prop])
}
}
...
}
关于c++ - 将数据提供给 ChartView (LineSeries) - QML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48261138/
我想放置一些矩形作为叠加层,以在 ScatterSeries 的 ChartView 上显示感兴趣的区域。然而,当我尝试这样做时,它显然使用了与 ScatterSeries 不同的坐标系,因为它是在一
QChart自定义背景画笔和绘图区画笔的官方示例代码:Custom chart example 如何使用 ChartView(Qml 类型)以 Qml 方式实现此目的? 我想像那个示例一样自定义 Qm
我最近开始使用 QML,我正在寻找一种方法来将数据从 C++ 提供到 QML 中的 ChartView。我更喜欢一个解决方案,我可以发送一个带有 Q_PROPERTY 之类的 QMap,以便它自动更新
我正在尝试使用条形图格式在 QLabel 小部件中绘制数据。创建图表后,我使用 chartView->grab() 捕获它以插入到 QLabel 中。这种方法适用于饼图,但对于条形图,不显示子元素(Q
我有一个在 QML 中声明的 ChartView 项,我需要类似橡皮筋的缩放功能。这可以通过半透明矩形和 MouseArea 项目来实现。问题是对于一个矩形,它只能选择从左上角到右下角的区域,因为带有
我正在尝试基于 qtcharts-qmloscilloscope-example here 制作类似 Qt Quick 应用程序的示波器 在此示例中,跟踪(QTQuick ChartView)在 QM
我有一个在 QML 中声明的 ChartView 项,我需要类似橡皮筋的缩放功能。这可以通过半透明矩形和 MouseArea 项目来实现。问题是对于一个矩形,它只能选择从左上角到右下角的区域,因为带有
我正在尝试获取对动态创建的 ChartView 对象的引用。在代码中,当我单击“添加图表”按钮时,您会看到我动态创建了一个图表作为委托(delegate)。 import QtQuick 2.12 i
我有一个由 QXYSeries 表示的散点图,并使用 Qt Charts 5.7 中的 ChartView 查看。 我想将鼠标悬停在绘图上,在一定距离内“悬停”触发,而不是仅当我的光标直接位于点上方时
我一直在关注this example尝试在 QDialog 窗口中创建折线图。而不是使用以下方法将图表添加到 UI: window.setCentralWidget(chartView); 我用这一行
我正在尝试调整 Qt5.9 QML Oscilloscope example从 C++ 推送图形数据而不是从 QML 请求图形数据。以下是 QML 示波器示例中的相关部分。 数据源.h: #ifnde
我的应用程序在 ViewPager 中有多个 Fragment。其中一个片段包含一个 ChartView,当用户滑动移动到相邻片段时,图表会重新绘制和压缩,而不是像预期的那样保持原始宽度。这也垂直发生
我有一个问题,当我在带有图表的 android 平板电脑 (android 7.0) 上启动调试时,我遇到了一个崩溃的应用程序。 所以我的 qt.pro: QT += qml quick core c
我有一个 QML 应用程序(通过属性、Q_INVOKABLE 等)链接到 C++ 代码。我可以使用 qmlscene 在没有大部分 C++ 框架的情况下启动 QML 应用程序,并且没有明显的问题(除了
我很难将 c++ 与 qml 和 QtCharts/Chartview 结合使用。如果有任何建议,我很乐意在这里提出! 问题:我想在QML中的Chartview中添加一个用c++定义的QLineSer
我正在尝试使用 python 将按需系列添加到在 qml 中定义的现有 ChartView。我找到了一个示例,展示了如何在 C++ 中执行此操作(取自 https://doc.qt.io/archiv
我的方法几乎是这样的: 图表.qml: Window { ChartView { id: chartView // ... } Button {
我正在使用图表库创建一些折线图,当没有可用数据时我希望清除图表。该图清除正常并显示其通常的“nodatatext”但是当我尝试再次设置图表时代码在设置数据的行上失败:fastestChartView.
我有一个自定义 QAbstractTableModel 和一个翻转第一个模型轴的代理模型。有了这个工作表,我只需切换模型。当我切换到图表的代理模型时,它会在我将行分配给 QHXYModelMapper
我想在 ChartView QML 对象中创建我自己的特定图表。我的期望是通过在 c++ 中指定例如 QCategoryAxis 而不是在 qml 中调用此函数来获得充分的灵 active 。 首先,
我是一名优秀的程序员,十分优秀!