qt编程label显示图片,如何在图片上绘制相应图形呢?

qt编程label显示图片,如何在图片上绘制相应图形呢?,第1张

先定义一个 QPixmap,在通过QPainter进行绘画。

例子如下:

QPixmap pixmap(100, 100)

QPainter paint(&pixmap)

paint.drawLine()// drawImage 等等各种draw开头的方法。

用定时器切换静态图片时间间隔短一点的话,就成动态的图片了。

希望能帮到你。

百度了一下,还可以这样:

#include <qapplication.h>

#include <qlabel.h>

//#include <qpixmap.h> //qt中的类

#include <qtimer.h>

#include <qmovie.h>

int main (int argc, char *argv[])

{

QApplication app(argc,argv)

QLabel *label=new QLabel ("", 0)//初始化qlabel

QMovie pm("logo.gif") //设定要显示的图片

label->setMovie(pm)//将图片加载到label上

label->setGeometry( 0, 0, 240, 320 )//屏幕大小,初始位置

app.setMainWidget(label)//将图片设为放置在中间

// QTimer::singleShot( 3*1000, label, SLOT(close()))//显示时间

label->show ()

return app.exec()

}

有多种方法:

用图标的方式:

    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))


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

原文地址: http://outofmemory.cn/tougao/7781337.html

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

发表评论

登录后才能评论

评论列表(0条)

保存