DiagramDesigner/source/loadPageDlg.cpp

87 lines
2.4 KiB
C++
Raw Permalink Normal View History

2025-02-06 16:36:50 +08:00
#include "loadPageDlg.h"
#include "dataBase.h"
#include "ui_loadPageDlg.h"
LoadPageDlg::LoadPageDlg(QWidget *parent)
: QDialog(parent)
, ui(new Ui::loadPageDlg)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint | windowFlags());
initial();
}
LoadPageDlg::~LoadPageDlg()
{
delete ui;
}
void LoadPageDlg::initial()
{
connect(ui->btnOk,&QPushButton::clicked,this,&LoadPageDlg::onOkClicked);
connect(ui->btnCancel,&QPushButton::clicked,this,&LoadPageDlg::onCancelClicked);
m_standardItemModel = new QStandardItemModel();
// 使用model设置QTreeView表头
2025-10-30 17:20:10 +08:00
m_standardItemModel->setHorizontalHeaderLabels(QStringList(QStringLiteral("组态编辑")));
2025-02-06 16:36:50 +08:00
// TreeView控件载入model
ui->treeView->setModel(m_standardItemModel);
// 展开数据
ui->treeView->expandAll();
connect(ui->treeView, &QTreeView::activated, this,&LoadPageDlg::onItemChanged);
}
void LoadPageDlg::updateList()
{
if(m_standardItemModel)
{
m_standardItemModel->removeRows(0, m_standardItemModel->rowCount());
QStandardItem* itemRoot = m_standardItemModel->invisibleRootItem();
// 创建并添加Item的第一个子节点
2025-10-24 21:11:07 +08:00
QStandardItem* itemPage = new QStandardItem(QStringLiteral("项目列表"));
2025-02-06 16:36:50 +08:00
itemRoot->appendRow(itemPage);
QList<QStandardItem*> pageList;
2025-10-24 21:11:07 +08:00
auto lst = DataBase::GetInstance()->getAllEditorProject();
for(auto &info:lst)
2025-02-06 16:36:50 +08:00
{
2025-10-24 21:11:07 +08:00
QStandardItem* item = new QStandardItem(info.name);
item->setData(info.uuid);
pageList.append(item);
2025-02-06 16:36:50 +08:00
}
itemPage->appendRows(pageList);
2025-10-30 17:20:10 +08:00
ui->treeView->expandAll();
2025-02-06 16:36:50 +08:00
}
}
void LoadPageDlg::onOkClicked()
{
QModelIndex selected = ui->treeView->currentIndex();
QStandardItem* item = m_standardItemModel->itemFromIndex(selected); // 根据index获取当前item
if(item)
{
_pageName = item->text();
2025-10-24 21:11:07 +08:00
QUuid uid = item->data().toUuid();
Q_EMIT selectedProject(_pageName,uid);
2025-02-06 16:36:50 +08:00
}
hide();
}
void LoadPageDlg::onCancelClicked()
{
hide();
}
void LoadPageDlg::onItemChanged(const QModelIndex& current)
{
QModelIndex index = current.sibling(current.row(), 0); // 获取当前item的子节点index note:子节点只有一行的情况下
QStandardItem* item = m_standardItemModel->itemFromIndex(index); // 根据index获取当前item
if(item)
{
_pageName = item->text();
}
}