• 大小: 25KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: 其他
  • 标签: qt  故障树  画图  

资源简介

qt 故障树 用qt 的graphics实现的画图功能 有需要的可以参考要一下

资源截图

代码片段和文件信息

#include “faulttree.h“
#include “ui_faulttree.h“
#include “items.h“
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include “simdata.h“

FaultTree::FaultTree(QWidget *parent) :
    QWidget(parent)
    ui(new Ui::FaultTree)
{
    ui->setupUi(this);
    init();
    createMenu();
}

FaultTree::~FaultTree()
{
    delete ui;
}

void FaultTree::init()
{
    m_model = new StandardTreeModel(this);
    ui->treeView->setModel(m_model);
    ui->treeView->header()->setSectionresizeMode(QHeaderView::ResizeToContents);

    m_scene = new QGraphicsScene(this);
    ui->graphicsView->setScene(m_scene);

    connect(&m_timer SIGNAL(timeout()) this SLOT(timeOut()));

    m_model->load(“data.db“);
}

void FaultTree::createMenu()
{
    ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu);
    m_menu = new QMenu(this);

    QAction *topEventOrAction = new QAction(QStringLiteral(“添加顶事件(或门)“));
    m_menu->addAction(topEventOrAction);
    connect(topEventOrAction SIGNAL(triggered()) this SLOT(addTopOrEvent()));

    QAction *topEventAndAction = new QAction(QStringLiteral(“添加顶事件(与门)“));
    m_menu->addAction(topEventAndAction);
    connect(topEventAndAction SIGNAL(triggered()) this SLOT(addTopAndEvent()));

    QAction *midEventOrAction = new QAction(QStringLiteral(“添加中间事件(或门)“));
    m_menu->addAction(midEventOrAction);
    connect(midEventOrAction SIGNAL(triggered()) this SLOT(addMidOrEvent()));

    QAction *midEventAndAction = new QAction(QStringLiteral(“添加中间事件(与门)“));
    m_menu->addAction(midEventAndAction);
    connect(midEventAndAction SIGNAL(triggered()) this SLOT(addMidAndEvent()));

    QAction *bottomEventAction = new QAction(QStringLiteral(“添加底事件“));
    m_menu->addAction(bottomEventAction);
    connect(bottomEventAction SIGNAL(triggered()) this SLOT(addBottomEvent()));

    QAction *genTreeAction = new QAction(QStringLiteral(“生成故障树“));
    m_menu->addAction(genTreeAction);
    connect(genTreeAction SIGNAL(triggered()) this SLOT(generateFaultTree()));

    QAction *setSimDataAction = new QAction(QStringLiteral(“设置底事件模拟数据“));
    m_menu->addAction(setSimDataAction);
    connect(setSimDataAction SIGNAL(triggered()) this SLOT(setSimData()));

    QAction *deleteEventAction = new QAction(QStringLiteral(“删除事件“));
    m_menu->addAction(deleteEventAction);
    connect(deleteEventAction SIGNAL(triggered()) this SLOT(deleteEvent()));
}

void FaultTree::on_treeView_customContextMenuRequested(const QPoint &pos)
{
    m_curIndex = ui->treeView->indexAt(pos);
    m_curIndex = m_curIndex.sibling(m_curIndex.row() 0);
    m_menu->exec(QCursor::pos());
}

void FaultTree::addTopOrEvent()
{
    QString str = QInputDialog::getText(this QStringLiteral(“请输入故障信息“) QStringLiteral(“故障信息“));
    if (!str.isEmpty())
    {
        StandardTreeModel::Insert ins

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-05-24 22:47  faultTree\
     文件        1182  2017-05-21 12:22  faultTree\faultTree.pro
     文件       44055  2017-05-24 22:47  faultTree\faultTree.pro.user
     文件       11565  2017-05-24 22:47  faultTree\faultTree.zip
     文件       18999  2017-05-24 22:45  faultTree\faulttree.cpp
     文件        1421  2017-05-24 22:27  faultTree\faulttree.h
     文件        1524  2017-05-21 12:38  faultTree\faulttree.ui
     文件        4620  2017-05-21 17:03  faultTree\items.cpp
     文件        1853  2017-05-21 17:02  faultTree\items.h
     文件         181  2017-05-19 23:34  faultTree\main.cpp
     文件         547  2017-05-21 12:26  faultTree\simdata.cpp
     文件         634  2017-05-21 16:48  faultTree\simdata.h
     文件        2026  2017-05-21 17:07  faultTree\simdata.ui
     文件        4076  2017-05-21 18:50  faultTree\standardtreemodel.cpp
     文件        1015  2017-05-21 18:47  faultTree\standardtreemodel.h

评论

共有 条评论