大佬們,我新手,最近用QT呼叫opencv顯示圖片,程式不難,但是沒學過QT,遇到一個錯誤,setPixmat這個函式報錯了,我看視頻上寫的代碼都是自動變色的,我的沒變色,而且報錯也說
到這里。這是視頻連接https://edu.51cto.com/course/12055.html?source=so 我感覺是我復制粘貼的原因,有什么東西沒改。不知道大佬們有什么高見,可以留言哦。下面貼上一些圖片,代碼。
pro檔案:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = 20200223
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
INCLUDEPATH+=E:/opencv-3.2.0/newbuild/install/include \
E:/opencv-3.2.0/newbuild/install/include/opencv \
E:/opencv-3.2.0/newbuild/install/include/opencv2
LIBS+= E:/opencv-3.2.0/newbuild/install/x86/mingw/lib/libopencv_core320.dll.a \
E:/opencv-3.2.0/newbuild/install/x86/mingw/lib/libopencv_highgui320.dll.a \
E:/opencv-3.2.0/newbuild/install/x86/mingw/lib/libopencv_imgproc320.dll.a \
E:/opencv-3.2.0/newbuild/install/x86/mingw/lib/libopencv_imgcodecs320.dll.a \
E:/opencv-3.2.0/newbuild/install/x86/mingw/lib/libopencv_highgui320.dll.a \
E:/opencv-3.2.0/newbuild/install/x86/mingw/lib/libopencv_videoio320.dll.a
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
main
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include<QFileDialog>
using namespace cv;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QString img_name=QFileDialog::getOpenFileName(this,tr("Open Image"),".",tr("Image Files(*.png *.jpg *.jpeg *.bmp)"));
Mat src=https://bbs.csdn.net/topics/imread(img_name.toLatin1().data());
cv::cvtColor(src,src,CV_BGR2RGB);
QImage img=QImage((const unsigned char*)(src.data),src.cols,src.rows,QImage::Format_RGB888);
ui->pushButton->setPixmap(QPixmap::fromImage(img));
}
uj5u.com熱心網友回復:
setPixmap是QLabel的函式你要學會查檔案
按鈕有setIcon函式
uj5u.com熱心網友回復:
Qt提供三個有關圖片的類,要學會使用幫助檔案,來查看自己需要的類: QImage, QPixmap, QBitmap 、 QPicture.uj5u.com熱心網友回復:
這句話的意思是 QPushButton 類沒有成員函式 setPixmap轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/47343.html
標籤:Qt
上一篇:用Android studio撰寫app怎么實作給手機發送訊息通知?
下一篇:Qt4和Qt5的主要區別
