• 6042阅读
  • 10回复

(急)系统时间能否动态的在QImage上显示 [复制链接]

上一主题 下一主题
离线蓝调
 
只看楼主 正序阅读 楼主  发表于: 2009-08-14
— 本帖被 XChinux 执行加亮操作(2009-08-14) —
如题所
离线蓝调
只看该作者 10楼 发表于: 2009-08-17
回 8楼(hiti_tony) 的帖子
谢谢,你这样确实可以!
为什么我不用这个
QPainter painter(this);
    
    if(m_pImage)
    {
        painter.drawImage(100,100,*m_pImage);
    }

而是在构造函数里用这个
setPixmap(QPixmap::fromImage(*m_pImage));
就show不出来呢?
离线蓝调
只看该作者 9楼 发表于: 2009-08-14
回 8楼(hiti_tony) 的帖子
谢谢,我来试一下!
我是将 QPainter paint(m_pImage);
    paint.fillRect(0,0,250,50,Qt::red);
    paint.drawText(0,25,time.toString());
写在paintEvent事件里面的,没有 painter.drawImage(100,100,*m_pImage);
居然死活显示不出来,哎!~~~~~~~~~
离线hiti_tony
只看该作者 8楼 发表于: 2009-08-14
.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>
#include <QImage>
#include <QTimer>
#include <QTime>
namespace Ui
{
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
protected:
    void paintEvent ( QPaintEvent * event );
private:
    QImage *m_pImage;
    QTimer m_timer;
    QTime time;
    Ui::MainWindow *ui;
public slots:
    void OnTimer();
};

#endif // MAINWINDOW_H




.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QPainter>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    m_pImage=NULL;
    connect(&m_timer,SIGNAL(timeout()),this,SLOT(OnTimer()));
    m_timer.start(1000);

}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::OnTimer()
{
    time=QTime::currentTime();
    if(m_pImage!=NULL)
    {
        delete m_pImage;
        m_pImage=NULL;

    }
    m_pImage=new QImage(250,50,QImage::Format_RGB32);
    QPainter paint(m_pImage);
    paint.fillRect(0,0,250,50,Qt::red);
    paint.drawText(0,25,time.toString());
    update(0,0,this->width(),this->height());
}
void MainWindow::paintEvent ( QPaintEvent * event )
{
    QPainter painter(this);
    
    if(m_pImage)
    {
        painter.drawImage(100,100,*m_pImage);
    }
}
离线蓝调
只看该作者 7楼 发表于: 2009-08-14
回 6楼(dbzhang800) 的帖子
怎么用QPainter啊,定时器做好了,就是不知道怎么往QImage里刷
离线dbzhang800

只看该作者 6楼 发表于: 2009-08-14
qt demo中有已经带了很多painting的例子,自己去看看吧

你需要的是 QPainter 这个类
离线蓝调
只看该作者 5楼 发表于: 2009-08-14
回 4楼(dbzhang800) 的帖子
怎么往QImage写入字符串啊?
能不能写几行代码看看,我真的不懂,才学的
离线dbzhang800

只看该作者 4楼 发表于: 2009-08-14
他想表达的是 QDateTime

你所需要的无非是设置一个定时器什么的,然后定时往你的QImage写入字符串吧?
离线蓝调
只看该作者 3楼 发表于: 2009-08-14
回 2楼(浪迹江湖) 的帖子
能不能说具体点呢,好像没有这个类啊
离线浪迹江湖

只看该作者 2楼 发表于: 2009-08-14
可以的,去找找 Qdatatime类
离线dbzhang800

只看该作者 1楼 发表于: 2009-08-14
当然可以
快速回复
限100 字节
 
上一个 下一个