Qt上位机指示灯贴图的两种方式
第一种 加载图片的方式
void PluginInkjetMonitor::ProcInkSupplyConnectedStatusUpdateMsg(json::Document& doc)
{
plugin::InkSupplyConnectedStatusUpdate objRecvPkt(doc);
QPixmap pixmap;
switch (objRecvPkt.GetConnectedStatus())
{
case plugin::ConnectedStatus::Connected:
pixmap.load(":/InkjetMonitor/Resource/Image/GreenLed.png");
break;
case plugin::ConnectedStatus::DisConnected:
pixmap.load(":/InkjetMonitor/Resource/Image/RedLed.png");
break;
case plugin::ConnectedStatus::UnKnown:
pixmap.load(":/InkjetMonitor/Resource/Image/GreyLed.png");
break;
default:
break;
}
pixmap.scaled(m_pMainWindowUi->labelInkConnectedStatus->size(), Qt::KeepAspectRatio);
m_pMainWindowUi->labelInkConnectedStatus->setScaledContents(true);
m_pMainWindowUi->labelInkConnectedStatus->setPixmap(pixmap);
}
pixmap.scaled(),
setScaledContents(true),
设置自适应label的大小.
第二种 设置控件属性,css文件或者setStyleSheet加载图片
void PluginInkjetMonitor::ProcInkSupplyConnectedStatusUpdateMsg(json::Document& doc)
{
plugin::InkSupplyConnectedStatusUpdate objRecvPkt(doc);
switch (objRecvPkt.GetConnectedStatus())
{
case plugin::ConnectedStatus::Connected:
m_pMainWindowUi->labelInkConnectedStatus->setProperty("flag", "green");
break;
case plugin::ConnectedStatus::DisConnected:
m_pMainWindowUi->labelInkConnectedStatus->setProperty("flag", "red");
break;
case plugin::ConnectedStatus::UnKnown:
m_pMainWindowUi->labelInkConnectedStatus->setProperty("flag", "grey");
break;
default:
break;
}
m_pMainWindowUi->labelInkConnectedStatus->setStyle(QApplication::style());
}
labelInkConnectedStatus->setProperty(“flag”, “green”),设置控件的属性,
css文件内对不同的属性加载不同的图片.