Qt之动态换图

Abstract:
1,“动态创建”
2,封装qwt的Plot类
3,拖拽
4,Plot类型转换


一、功能描述
假设有一个信号分析的软件工程,在它的主窗口mainwindow上,左侧是一个测试项列表(QListWidget),右侧是四个图形窗口(Plot or QTableWidget)用于观察测试项的图形结果。现在要实现的功能是:通过拖拽右侧测试项列表中任一项到右侧的任一窗口,即可在该窗口观察对应的测试项图形结果,且这个图形结果有多种形式,如曲线图(PlotCurve)、光栅图(PlotRaster)和表格( QTableWidget )等,具体是哪种形式由具体的测试项决定。
二、功能分解实现
1,UI布局
通过Qt Designer,在左侧布一个 QListWidget,右侧布一个QFrame。然后将 QListWidget提升为CustomListWidget,使它支持拖拽功能(参考《C++ GUI Qt4》第9章“拖拽”的第一个例子),主要是重写函数 mousePressEvent ()和 mouseMoveEvent()。再然后 将右侧 QFrame提升为QuadSplitter(参考我的博文: QuadSplitter 。最后就是用四个QWidget填充QuadSplitter。具体如下:
在mianwindow.h中定义:
    static const int    s_iWidgetsNumber = 4;    // 右侧显示区的图表数量
    QWidget           * m_pShowWidgets[2][2];    // 右侧显示区的四幅图或表
实现:
void MainWindow::CreateCharts()
{
    for (int i = 0; i <<span style=" color:#c0c0c0;"> s_iWidgetsNumber; i++)
    {
        // 创图表
        m_pShowWidgets[i/2][i%2] = new Plot;
        ui->frameDisplay->addWidget(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值