使用paintEvent显示现有图片的问题
各位大神门,主要的问题是,使用painter绘制摄像头截取的图片,在 QMainWindow 中,有一个按钮,当按下这个按钮时,会有一张图片存成test33.jpg,
我现在想把这个图片,用一个子类PaintedWidget 画出来,同时显示到QMainWindow 的左边。
现在的问题有两个:
1)怎么把PaintedWidget 添加到QMainWindow 中,
2)我使用PaintedWidget w(img); 把img传到PaintedWidget 中,但是不调用paintEvent是怎么回事。
求大神指点。在线等
==========MainWindow .h
class PaintedWidget : public QWidget
{
public:
PaintedWidget(QImage img);
protected:
void paintEvent(QPaintEvent *event);
QImage img;
};
class MainWindow : public QMainWindow {
Q_OBJECT
public:
Ui::MainWindow *ui;
}
==============MainWindow .cpp
PaintedWidget::PaintedWidget(QImage img)
{
int width = 500;//自动获取长度
int height = 400;//自动获取宽
this->setFixedSize(width, height);
}
void PaintedWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
//painter.setBrush(Qt::darkGreen);
//painter.drawRect(100, 170, 25, 10);
//painter.drawRect(40, 200, 20, 10);
QPixmap pixmapToShow = QPixmap::fromImage(img.scaled(size(), Qt::KeepAspectRatio));
painter.drawPixmap(0, 0, pixmapToShow);
//painter.drawImage(0,0, image);
cout << "444" << endl;
update();
}
void MainWindow::on_pushButton_snap_catch_click()
{
。。。。。。
img.load("test33.jpg");
PaintedWidget w(img);
}