qt tablewidget设置图片

qt tablewidget设置图片,第1张

有多种方法:

用图标的方式:

    QTableWidgetItem *it = ui->tableWidget->item(row, col)

    if (it==0)

    {

       it=new QTableWidgetItem()

       setItem(row, col, it)

    }    

    it->setIcon(QIcon(pixMap))

用setCellWidget:

   QLabel* label=new QLabel

   label->setPixmap(pixMap)

   ui->tableWidget->setCellWidget(row, col, label)

用代理:

class QPixmapItemDele : public QStyledItemDelegate

{

public:

     QPixmapItemDele(QObject* parent = 0) : QStyledItemDelegate(parent) {}

     virtual void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const

     {

         if (index.data(Qt::DisplayRole).canConvert<QPixmap>())

         {

             QPixmap pm = index.data(Qt::DisplayRole).value<QPixmap>()

             painter->drawPixmap(0,0,pm)

         }

         else

         {

             QStyledItemDelegate::paint(painter, option, index)

         }

     }

}

......

ui->tableWidget->setItemDelegate(new QPixmapItemDele)

ui->tableWidget->item(row,col)->setData(Qt::DisplayRole, QVariant::fromValue<QPixmap>(pixMap))

自定义一个widget,重写paintEvent ( QPaintEvent * event ) 画你想画的图形,然后调用 QTabWidget::setCornerWidget

+1

自己自定义一个widget作为QTabWidget的一个页面。

怎么自定义一个widget,要创建一个类吗,具体怎么 *** 作啊,谢谢!

自己定义一个类去继承QWidget,重写这个类的paintEvent

那怎么放到tabwidget里面呢,用insertTab(int index,QWidget *widget,const QString &)吗。那么这个函数中的QWidget *widget怎么定义。

这样的话,我把图都画在了自定义的类里面,那么我怎么调用这个类不停的画图呢。

你要在你调用的地方构造:

MyWidget widget = new MyWidget(this)

然后在通过insertTab去添加这个widget。

paintEvent事件是在MyWidget重写的,你只要在widget的区域就可以不停的画图了。

[解决办法]

Qt的绘图比较特别,也是类似MVC方式(MFC是直接绘图,也可类似MVC),数据和视图分开,paintEvent里只要写绘图代码。其它的地方处理数据,更新完了数据,直接update就会重绘。

我这有个简单的例子:http://download.csdn.net/detail/jdwx1/4108947,0分下载。

谢谢,这个应该是只能在切换到当前的tab时执行一次画图,那么我要是实时更新,不停的画图呢。

我按照你的写法修改了之后,运行没有错误,但是界面一直出不来。当我在构造函数里把ui->topologyTab->installEventFilter(this)注释掉了就好了。本文来自:读书人网(http://www.reader8.cn/)原文链接:

1、将Matplotlib的Figure对象转换为QWidget,可以使用FigureCanvasQTAgg类。这个类继承自PyQt5.QtWidgets.QWidget,并提供了显示Matplotlib图形的函数。

2、创建一个QTabWidget对象,并为其添加需要显示的各个标签页。

3、在每个标签页中添加Step1中创建的FigureCanvasQTAgg对象。

4、确定好每个标签页的内容后,将QTabWidget对象添加到主窗口中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11520961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存