调整tab大小随内容自动调整大小策略

This commit is contained in:
duanshengchao 2025-03-28 17:17:44 +08:00
parent e540f867b6
commit c3f5824968
4 changed files with 31 additions and 6 deletions

View File

@ -68,14 +68,26 @@ void dpConfigurationDialog::initialize()
//typeSourceList //typeSourceList
m_pModel_typeSource = new QStandardItemModel(this); m_pModel_typeSource = new QStandardItemModel(this);
ui->typeSourceList->setModel(m_pModel_typeSource); ui->typeSourceList->setModel(m_pModel_typeSource);
QStringList typeSourceTextList; /*QStringList typeSourceTextList;
typeSourceTextList << QString::fromStdWString(L"电压") << QString::fromStdWString(L"电流") << QString::fromStdWString(L"功率"); typeSourceTextList << QString::fromStdWString(L"电压") << QString::fromStdWString(L"电流") << QString::fromStdWString(L"功率");
for(QString& text: typeSourceTextList) for(QString& text: typeSourceTextList)
{ {
QStandardItem* item = new QStandardItem(text); QStandardItem* item = new QStandardItem(text);
item->setEditable(false); //不可编辑 item->setEditable(false); //不可编辑
m_pModel_typeSource->appendRow(item); m_pModel_typeSource->appendRow(item);
} }*/
QStandardItem* item = new QStandardItem(QString::fromStdWString(L"电压"));
item->setData(RealTimeDataType::voltage, Qt::UserRole + itemRole_dataType);
item->setEditable(false); //不可编辑
m_pModel_typeSource->appendRow(item);
item = new QStandardItem(QString::fromStdWString(L"电流"));
item->setData(RealTimeDataType::current, Qt::UserRole + itemRole_dataType);
item->setEditable(false); //不可编辑
m_pModel_typeSource->appendRow(item);
item = new QStandardItem(QString::fromStdWString(L"功率"));
item->setData(RealTimeDataType::power, Qt::UserRole + itemRole_dataType);
item->setEditable(false); //不可编辑
m_pModel_typeSource->appendRow(item);
//typeSelectedList //typeSelectedList
ui->typeSelectedList->setSelectionBehavior(QAbstractItemView::SelectRows); ui->typeSelectedList->setSelectionBehavior(QAbstractItemView::SelectRows);
m_pModel_typeSelected = new QStandardItemModel(this); m_pModel_typeSelected = new QStandardItemModel(this);
@ -141,6 +153,7 @@ void dpConfigurationDialog::createDataSourceList()
currentItem->setData(0, Qt::UserRole + itemRole_stationID); currentItem->setData(0, Qt::UserRole + itemRole_stationID);
currentItem->setData(0, Qt::UserRole + itemRole_componentID); currentItem->setData(0, Qt::UserRole + itemRole_componentID);
currentItem->setData(0, Qt::UserRole + itemRole_pointID); currentItem->setData(0, Qt::UserRole + itemRole_pointID);
currentItem->setData(RealTimeDataType::current, Qt::UserRole + itemRole_dataType);
componentItem->appendRow(currentItem); componentItem->appendRow(currentItem);
QStandardItem* voltageItem = new QStandardItem("电压"); QStandardItem* voltageItem = new QStandardItem("电压");
voltageItem->setEditable(false); voltageItem->setEditable(false);
@ -148,6 +161,7 @@ void dpConfigurationDialog::createDataSourceList()
voltageItem->setData(0, Qt::UserRole + itemRole_stationID); voltageItem->setData(0, Qt::UserRole + itemRole_stationID);
voltageItem->setData(0, Qt::UserRole + itemRole_componentID); voltageItem->setData(0, Qt::UserRole + itemRole_componentID);
voltageItem->setData(1, Qt::UserRole + itemRole_pointID); voltageItem->setData(1, Qt::UserRole + itemRole_pointID);
voltageItem->setData(RealTimeDataType::voltage, Qt::UserRole + itemRole_dataType);
componentItem->appendRow(voltageItem); componentItem->appendRow(voltageItem);
ui->dataSourceList->expandAll(); ui->dataSourceList->expandAll();
} }

View File

@ -14,6 +14,13 @@ enum DataPanelType
map //地图 map //地图
}; };
enum RealTimeDataType
{
power = 0, //功率
voltage, //电压
current //电流
};
#include <QStandardItemModel> #include <QStandardItemModel>
struct configurationResults struct configurationResults
{ {
@ -37,5 +44,6 @@ struct configurationResults
#define itemRole_stationID 2 #define itemRole_stationID 2
#define itemRole_componentID 3 #define itemRole_componentID 3
#define itemRole_pointID 4 #define itemRole_pointID 4
#define itemRole_dataType 5
#endif #endif

View File

@ -8,7 +8,7 @@ class CustomMenu : public QMenu
Q_OBJECT Q_OBJECT
public: public:
CustomMenu(QWidget *parent = nullptr); CustomMenu(QWidget *parent = nullptr);
virtual ~CustomMenu(); virtual ~CustomMenu();
bool mouseIsInside() {return m_bMouseInside;} bool mouseIsInside() {return m_bMouseInside;}

View File

@ -150,9 +150,12 @@ void CustomTab::setText(const QString& strTitle)
m_pTitle->setText(strTitle); m_pTitle->setText(strTitle);
QFontMetrics metrics(m_pTitle->font()); QFontMetrics metrics(m_pTitle->font());
QRect rect = metrics.boundingRect(m_pTitle->text()); // QRect rect = metrics.boundingRect(m_pTitle->text());
m_pTitle->setMinimumSize(rect.width() + 12, 0); // m_pTitle->setMinimumSize(rect.width() + 12, 0);
m_pTitle->setMaximumSize(rect.width() + 12, 1660); // m_pTitle->setMaximumSize(rect.width() + 12, 1660);
int textWidth = metrics.horizontalAdvance(strTitle);
m_pTitle->setMinimumSize(textWidth + 12, 0);
m_pTitle->setMaximumSize(textWidth + 12, 1660);
setObjectName("dashboardTab_" + strTitle); setObjectName("dashboardTab_" + strTitle);
} }