颜色映射图例,规格尺寸修改
This commit is contained in:
91
main.cpp
91
main.cpp
@@ -44,7 +44,8 @@ int main(int argc, char *argv[]) {
|
||||
QOpenGLContext probeCtx;
|
||||
probeCtx.setFormat(QSurfaceFormat::defaultFormat());
|
||||
if (!probeCtx.create()) {
|
||||
qCritical().noquote() << "Failed to create an OpenGL context (required: OpenGL 3.3 Core).";
|
||||
qCritical().noquote() << "Failed to create an OpenGL context "
|
||||
"(required: OpenGL 3.3 Core).";
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -54,17 +55,22 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
if (!probeCtx.makeCurrent(&probeSurface)) {
|
||||
qCritical().noquote()
|
||||
<< "Failed to make the OpenGL context current. This usually means the requested format is unsupported by the current graphics driver.";
|
||||
<< "Failed to make the OpenGL context current. This usually "
|
||||
"means the requested format is unsupported by the current "
|
||||
"graphics driver.";
|
||||
return 1;
|
||||
}
|
||||
|
||||
const QSurfaceFormat actual = probeCtx.format();
|
||||
const bool versionOk = (actual.majorVersion() > 3) || (actual.majorVersion() == 3 && actual.minorVersion() >= 3);
|
||||
const bool versionOk =
|
||||
(actual.majorVersion() > 3) ||
|
||||
(actual.majorVersion() == 3 && actual.minorVersion() >= 3);
|
||||
if (!versionOk || actual.profile() != QSurfaceFormat::CoreProfile) {
|
||||
probeCtx.doneCurrent();
|
||||
qCritical().noquote()
|
||||
<< "OpenGL context is not OpenGL 3.3 Core (got: "
|
||||
<< actual.majorVersion() << "." << actual.minorVersion() << ", profile=" << actual.profile() << ").";
|
||||
<< actual.majorVersion() << "." << actual.minorVersion()
|
||||
<< ", profile=" << actual.profile() << ").";
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -84,12 +90,12 @@ int main(int argc, char *argv[]) {
|
||||
qmlRegisterSingletonInstance("TactileIPC", 1, 0, "I18n", &i18n);
|
||||
qmlRegisterType<SparklinePlotItem>("LiveTrend", 1, 0, "SparklinePlot");
|
||||
i18n.setLanguage(backend.language());
|
||||
QObject::connect(&backend, &AppBackend::languageChanged, &i18n, [&backend, &i18n]() {
|
||||
i18n.setLanguage(backend.language());
|
||||
});
|
||||
QObject::connect(
|
||||
&backend, &AppBackend::languageChanged, &i18n,
|
||||
[&backend, &i18n]() { i18n.setLanguage(backend.language()); });
|
||||
auto *qmlEngine = new QQmlEngine(root);
|
||||
|
||||
auto createQuickWidget = [&](const QUrl& sourceUrl) -> QQuickWidget* {
|
||||
auto createQuickWidget = [&](const QUrl &sourceUrl) -> QQuickWidget * {
|
||||
auto *view = new QQuickWidget(qmlEngine, root);
|
||||
view->setResizeMode(QQuickWidget::SizeRootObjectToView);
|
||||
view->setSource(sourceUrl);
|
||||
@@ -107,26 +113,30 @@ int main(int argc, char *argv[]) {
|
||||
leftView->setFixedWidth(350);
|
||||
|
||||
auto *glw = new GLWidget;
|
||||
glw->setSpec(8, 11, 0.1f, 0.03f);
|
||||
glw->setSpec(12, 7, 0.1f, 0.03f);
|
||||
glw->setPanelThickness(0.08f);
|
||||
glw->setRange(0, 1000);
|
||||
glw->setRange(backend.rangeMin(), backend.rangeMax());
|
||||
glw->setColorLow(backend.colorLow());
|
||||
glw->setColorMid(backend.colorMid());
|
||||
glw->setColorHigh(backend.colorHigh());
|
||||
|
||||
/* backend.data()->setLiveRenderCallback([glw](const DataFrame& frame) {
|
||||
if (frame.data.size() != glw->dotCount())
|
||||
return;
|
||||
glw->submitValues(frame.data);
|
||||
}); */
|
||||
backend.data()->setLiveRenderCallback([](const DataFrame& frame) {
|
||||
backend.data()->setLiveRenderCallback([](const DataFrame &frame) {
|
||||
if (frame.data.size() != 0) {
|
||||
// AA 55 1A 00 34 00 FB 00 1C 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F1
|
||||
// aa 55 1a 00 34 00 fb 00 1c 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1
|
||||
// AA 55 1A 00 34 00 FB 00 1C 00 00 10 00 00 00 00 00 00 00 00 00 00
|
||||
// 00 00 00 00 00 00 00 00 F1 aa 55 1a 00 34 00 fb 00 1c 00 00 10 00
|
||||
// 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1
|
||||
qDebug() << "data size: " << frame.data.size();
|
||||
|
||||
}
|
||||
});
|
||||
// TODO:待实现内容(将frame数据分发给右侧曲线/指标的QML接口)
|
||||
|
||||
auto *rightView = createQuickWidget(QUrl("qrc:/qml/content/RightPanel.qml"));
|
||||
auto *rightView =
|
||||
createQuickWidget(QUrl("qrc:/qml/content/RightPanel.qml"));
|
||||
|
||||
splitter->addWidget(leftView);
|
||||
splitter->addWidget(glw);
|
||||
@@ -136,33 +146,52 @@ int main(int argc, char *argv[]) {
|
||||
splitter->setStretchFactor(2, 0);
|
||||
splitter->setSizes({320, 640, 320});
|
||||
auto applySplitterStyle = [&backend, splitter]() {
|
||||
const QString handleColor = backend.lightMode() ? QStringLiteral("#E0E0E0") : QStringLiteral("#2C2C2C");
|
||||
splitter->setStyleSheet(QStringLiteral("QSplitter::handle { background: %1; }").arg(handleColor));
|
||||
const QString handleColor = backend.lightMode()
|
||||
? QStringLiteral("#E0E0E0")
|
||||
: QStringLiteral("#2C2C2C");
|
||||
splitter->setStyleSheet(
|
||||
QStringLiteral("QSplitter::handle { background: %1; }")
|
||||
.arg(handleColor));
|
||||
};
|
||||
applySplitterStyle();
|
||||
QObject::connect(&backend, &AppBackend::lightModeChanged, splitter, [applySplitterStyle]() {
|
||||
applySplitterStyle();
|
||||
});
|
||||
QObject::connect(&backend, &AppBackend::lightModeChanged, splitter,
|
||||
[applySplitterStyle]() { applySplitterStyle(); });
|
||||
|
||||
auto applyQuickTheme = [&backend, navView, leftView, rightView]() {
|
||||
const QColor navColor = backend.lightMode() ? QColor(QStringLiteral("#F5F7F5")) : QColor(QStringLiteral("#2B2F2B"));
|
||||
const QColor panelColor = backend.lightMode() ? QColor(QStringLiteral("#F5F5F5")) : QColor(QStringLiteral("#2C2C2C"));
|
||||
const QColor navColor = backend.lightMode()
|
||||
? QColor(QStringLiteral("#F5F7F5"))
|
||||
: QColor(QStringLiteral("#2B2F2B"));
|
||||
const QColor panelColor = backend.lightMode()
|
||||
? QColor(QStringLiteral("#F5F5F5"))
|
||||
: QColor(QStringLiteral("#2C2C2C"));
|
||||
navView->setClearColor(navColor);
|
||||
leftView->setClearColor(panelColor);
|
||||
rightView->setClearColor(panelColor);
|
||||
};
|
||||
applyQuickTheme();
|
||||
QObject::connect(&backend, &AppBackend::lightModeChanged, navView, [applyQuickTheme]() {
|
||||
applyQuickTheme();
|
||||
});
|
||||
QObject::connect(&backend, &AppBackend::lightModeChanged, navView,
|
||||
[applyQuickTheme]() { applyQuickTheme(); });
|
||||
|
||||
QObject::connect(&backend, &AppBackend::lightModeChanged, glw,
|
||||
[&backend, glw]() {
|
||||
bool m = backend.lightMode() ? true : false;
|
||||
glw->setLightMode(m);
|
||||
});
|
||||
|
||||
QObject::connect(&backend, &AppBackend::lightModeChanged, glw, [&backend, glw]() {
|
||||
bool m = backend.lightMode() ? true : false;
|
||||
glw->setLightMode(m);
|
||||
});
|
||||
|
||||
QObject::connect(&backend, &AppBackend::showGridChanged, glw, &GLWidget::setShowGrid);
|
||||
QObject::connect(&backend, &AppBackend::showGridChanged, glw,
|
||||
&GLWidget::setShowGrid);
|
||||
QObject::connect(&backend, &AppBackend::sensorRowChanged, glw,
|
||||
&GLWidget::setRow);
|
||||
QObject::connect(&backend, &AppBackend::sensorColChanged, glw,
|
||||
&GLWidget::setCol);
|
||||
QObject::connect(&backend, &AppBackend::rangeChanged, glw,
|
||||
&GLWidget::setRange);
|
||||
QObject::connect(&backend, &AppBackend::colorLowChanged, glw,
|
||||
&GLWidget::setColorLow);
|
||||
QObject::connect(&backend, &AppBackend::colorMidChanged, glw,
|
||||
&GLWidget::setColorMid);
|
||||
QObject::connect(&backend, &AppBackend::colorHighChanged, glw,
|
||||
&GLWidget::setColorHigh);
|
||||
|
||||
rootLayout->addWidget(navView);
|
||||
rootLayout->addWidget(splitter);
|
||||
|
||||
Reference in New Issue
Block a user