博客
关于我
Qt之动态换图
阅读量:97 次
发布时间:2019-02-26

本文共 2692 字,大约阅读时间需要 8 分钟。

??????????????

????

???????????????????????QListWidget????????????Plot?QTableWidget????????????????????????????????????????????????????????????????????????????????PlotCurve??????PlotRaster?????QTableWidget?????????????

???????

1. UI??

??Qt Designer??????????QListWidget??????QFrame????QListWidget???CustomListWidget???????????????mousePressEvent?mouseMoveEvent??????QFrame????QuadSplitter????????????????QWidget??QuadSplitter?

?mainwindow.h????

static const int s_iWidgetsNumber = 4;  // ??????????QWidget * m_pShowWidgets[2][2];    // ???????????

??CreateCharts???

void MainWindow::CreateCharts(){    for (int i = 0; i < s_iWidgetsNumber; i++)    {        // ????        m_pShowWidgets[i/2][i%2] = new Plot;        ui->frameDisplay->addWidget(m_pShowWidgets[i/2][i%2], i/2, i%2);        connect(m_pShowWidgets[i/2][i%2], SIGNAL(FullScreenToggle(QWidget*, bool)), this, SLOT(OnToggleSize(QWidget*, bool)));        connect(m_pShowWidgets[i/2][i%2], SIGNAL(DragComplete(QWidget*, QString)), this, SLOT(OnDragComplete(QWidget*, QString)));    }}

2. ??????

????????????????????????????????QWT?????Plot?????PlotCurve?PlotRaster?????????PlotTable????PIMP???Pointer to Implementation???CustomTableWidget?????

Plot????????????????

signals:void FullScreenToggle(QWidget* pWidget, bool bFullScreen);void DragComplete(QWidget* pWidget, QString strTestItem);events:void mouseDoubleClickEvent(QMouseEvent *event);void dragEnterEvent(QDragEnterEvent *event);void dropEvent(QDropEvent *event);

3. ??????????

??????????????CTestItem???QObject????Q_OBJECT????????QPointer?????????????????????

????OnDragComplete?

void MainWindow::OnDragComplete(QWidget *pWidget, QString itemName){    for (int i = 0; i < s_iWidgetsNumber; ++i)    {        if (pWidget == (m_pShowWidgets[i/2][i%2]))        {            m_pTestItems[i/2][i%2] = CRuntimeClass::LoadObject(itemName.toStdWString().c_str(), &m_pShowWidgets[i/2][i%2]);            if (m_pShowWidgets[i/2][i%2]->parentWidget() != ui->frameDisplay)            {                ui->frameDisplay->addWidget(m_pShowWidgets[i/2][i%2], i/2, i%2);                connect(m_pShowWidgets[i/2][i%2], SIGNAL(FullScreenToggle(QWidget*, bool)), this, SLOT(OnToggleSize(QWidget*, bool)));                connect(m_pShowWidgets[i/2][i%2], SIGNAL(DragComplete(QWidget*, QString)), this, SLOT(OnDragComplete(QWidget*, QString)));            }        }    }}

????????????????????CTestItem?????????????????????????????

if (!(m_pShowWidget = qobject_cast
(*ppWidget))){ qDebug("qobject_cast to PlotCurve failed"); delete(*ppWidget); *ppWidget = NULL; *ppWidget = new PlotCurve;}

??

??????????????????????????????????????????????????????????????QWT????????????????

转载地址:http://qkqu.baihongyu.com/

你可能感兴趣的文章
Objective-C实现linear discriminant analysis线性判别分析算法(附完整源码)
查看>>
Objective-C实现linear regression线性回归算法(附完整源码)
查看>>
Objective-C实现linear search线性搜索算法(附完整源码)
查看>>
Objective-C实现Linear search线性搜索算法(附完整源码)
查看>>
Objective-C实现LinearSieve线性素数筛选算法 (附完整源码)
查看>>
Objective-C实现LinkedListNode链表节点类算法(附完整源码)
查看>>
Objective-C实现LinkedList链表算法(附完整源码)
查看>>
Objective-C实现local weighted learning局部加权学习算法(附完整源码)
查看>>
Objective-C实现logistic regression逻辑回归算法(附完整源码)
查看>>
Objective-C实现logistic sigmoid函数(附完整源码)
查看>>
Objective-C实现longest Common Substring最长公共子串算法(附完整源码)
查看>>
Objective-C实现longest increasing subsequence最长递增子序列算法(附完整源码)
查看>>
Objective-C实现longestCommonSubsequence最长公共子序列算法(附完整源码)
查看>>
Objective-C实现LongestIncreasingSubsequence最长递增子序列算法(附完整源码)
查看>>
Objective-C实现lorenz transformation 洛伦兹变换算法(附完整源码)
查看>>
Objective-C实现Lower-Upper Decomposition上下分解算法(附完整源码)
查看>>
Objective-C实现LowerCaseConversion小写转换算法(附完整源码)
查看>>
Objective-C实现lowest common ancestor最低共同祖先算法(附完整源码)
查看>>
Objective-C实现LRU 缓存算法(附完整源码)
查看>>
Objective-C实现LRU缓存(附完整源码)
查看>>