fix for windows
This commit is contained in:
2026-02-15 08:58:31 +01:00
parent 4f6d3b2769
commit efc412679c
+55 -5
View File
@@ -243,13 +243,21 @@ void UI_base::process_ui_label(json &ui_item, QWidget *widget)
void UI_base::process_ui_slider(json &ui_item, QWidget *widget) void UI_base::process_ui_slider(json &ui_item, QWidget *widget)
{ {
QLabel *label = id_to_label(id_to_ui(ui_item.at("id"))); QLabel *label = id_to_label(id_to_ui(ui_item.at("id")));
#ifdef __WIN32
if (!widget->inherits("QwtSlider"))
{
LOG_WARN("widget is not of type QwtSlider");
return;
}
auto slider = static_cast<QwtSlider *>(widget);
#else
auto slider = qobject_cast<QwtSlider *>(widget); auto slider = qobject_cast<QwtSlider *>(widget);
if (slider == nullptr) if (slider == nullptr)
{ {
LOG_WARN("widget is not of type QwtSlider"); LOG_WARN("widget is not of type QwtSlider");
return; return;
} }
#endif
double value = ui_item.at("value"); double value = ui_item.at("value");
bool enable = ui_item.at("enabled"); bool enable = ui_item.at("enabled");
@@ -283,12 +291,21 @@ void UI_base::process_ui_dial(json &ui_item, QWidget *widget)
{ {
QLabel *label = id_to_label(id_to_ui(ui_item.at("id"))); QLabel *label = id_to_label(id_to_ui(ui_item.at("id")));
#ifdef __WIN32
if (!widget->inherits("QwtDial"))
{
LOG_WARN("widget is not of type QwtDial");
return;
}
auto dial = static_cast<QwtDial *>(widget);
#else
auto dial = qobject_cast<QwtDial *>(widget); auto dial = qobject_cast<QwtDial *>(widget);
if (dial == nullptr) if (dial == nullptr)
{ {
LOG_WARN("widget is not of type QwtDial"); LOG_WARN("widget is not of type QwtDial");
return; return;
} }
#endif
double value = ui_item.at("value"); double value = ui_item.at("value");
bool visible = ui_item.at("visible"); bool visible = ui_item.at("visible");
@@ -315,12 +332,21 @@ void UI_base::process_ui_thermo(json &ui_item, QWidget *widget)
{ {
QLabel *label = id_to_label(id_to_ui(ui_item.at("id"))); QLabel *label = id_to_label(id_to_ui(ui_item.at("id")));
#ifdef __WIN32
if (!widget->inherits("QwtThermo"))
{
LOG_WARN("widget is not of type QwtThermo");
return;
}
auto thermo = static_cast<QwtThermo *>(widget);
#else
auto thermo = qobject_cast<QwtThermo *>(widget); auto thermo = qobject_cast<QwtThermo *>(widget);
if (thermo == nullptr) if (thermo == nullptr)
{ {
LOG_WARN("widget is not of type QwtThermo"); LOG_WARN("widget is not of type QwtThermo");
return; return;
} }
#endif
double value = ui_item.at("value"); double value = ui_item.at("value");
bool visible = ui_item.at("visible"); bool visible = ui_item.at("visible");
@@ -1010,18 +1036,42 @@ void UI_base::setup_checkbox(QWidget *item, size_t index)
void UI_base::setup_dial(QWidget *item, size_t index) void UI_base::setup_dial(QWidget *item, size_t index)
{ {
QwtDial *dial = qobject_cast<QwtDial *>(item); #ifdef __WIN32
if (dial == nullptr) if (!item->inherits("QwtDial"))
{
LOG_WARN("widget is not of type QwtDial");
return; return;
}
auto dial = static_cast<QwtDial *>(item);
#else
auto dial = qobject_cast<QwtDial *>(item);
if (dial == nullptr)
{
LOG_WARN("widget is not of type QwtDial");
return;
}
#endif
create_dial_needle(dial); create_dial_needle(dial);
} }
void UI_base::setup_slider(QWidget *item, size_t index) void UI_base::setup_slider(QWidget *item, size_t index)
{ {
QwtSlider *slider = qobject_cast<QwtSlider *>(item); #ifdef __WIN32
if (slider == nullptr) if (!item->inherits("QwtSlider"))
{
LOG_WARN("widget is not of type QwtSlider");
return; return;
}
auto slider = static_cast<QwtSlider *>(item);
#else
auto slider = qobject_cast<QwtSlider *>(item);
if (slider == nullptr)
{
LOG_WARN("widget is not of type QwtSlider");
return;
}
#endif
connect(slider, &QwtSlider::sliderMoved, this, connect(slider, &QwtSlider::sliderMoved, this,
[=, this] { m_web_socket->send_event(Web_socket_wrapper::Event::value_changed, index, slider->value()); }); [=, this] { m_web_socket->send_event(Web_socket_wrapper::Event::value_changed, index, slider->value()); });