美文网首页
基于VS下的Qt 界面设计

基于VS下的Qt 界面设计

作者: 带着白卡去旅行 | 来源:发表于2018-09-26 15:48 被阅读560次

    Vs下调用Qt gui 操作
    新建项目——Qt GUI Application——确定后 next —— finish

    Buttons 选项栏
    Push Button

    更改对象名称 按钮添加文字

    ctrl+r 查看效果后 返回vs 添加链接

    生成项目的文件

    .cpp文件中添加槽链接

    ui.setupUi(this);
        QObject::connect(ui.openImg, SIGNAL(clicked()), this, SLOT(OpenImgsSlot()));
        QObject::connect(ui.ErodeImg, SIGNAL(clicked()), this, SLOT(ErodeImgeSlot()));
    

    相应操作代码[完整版]

    #include "Myimshow_img.h"
    
    Myimshow_img::Myimshow_img(QWidget *parent)
        : QMainWindow(parent)
    {
        ui.setupUi(this);
        QObject::connect(ui.openImg, SIGNAL(clicked()), this, SLOT(OpenImgsSlot()));
        QObject::connect(ui.ErodeImg, SIGNAL(clicked()), this, SLOT(ErodeImgeSlot()));
    }
    Myimshow_img::~Myimshow_img()
    {
    
    }
    
    void Myimshow_img::OpenImgsSlot()
    {
        src = imread("dota.jpg");
        cvtColor(src,src,CV_RGB2RGBA);
        QImage src_1 = QImage((const unsigned char*)(src.data),src.cols,src.rows,QImage::Format_RGB32);//转化成Qimage格式
        QLabel*label = new QLabel(this);
        label->move(200, 150);
        label->setPixmap(QPixmap::fromImage(src_1));
        label->resize(label->pixmap()->size());
        label->show();
        
    }
    void Myimshow_img::ErodeImgeSlot()
    {
        
        erode(src,dst,Mat());
        QImage src_2 = QImage((const unsigned char*)(dst.data), dst.cols, dst.rows, QImage::Format_RGB32);//转化成Qimage格式
        QLabel*label = new QLabel(this);
        label->move(200,150);
        label->setPixmap(QPixmap::fromImage(src_2));
        label->resize(label->pixmap()->size());
        label->show();
    }
    

    在头文件(.h)中添加:

    #ifndef  Myimshow_img_H
    #define  Myimshow_img_H
    
    #include <QtWidgets/QMainWindow>
    #include "ui_Myimshow_img.h"
    #include<Qlabel>
    #include<opencv2/opencv.hpp>
    #include<iostream>
    
    using namespace cv;
    
    
    class Myimshow_img : public QMainWindow
    {
        Q_OBJECT
            
    
    public:
        Myimshow_img(QWidget *parent = 0);
        ~Myimshow_img();
    
    private:
        
        Ui::Myimshow_imgClass ui;
        Mat src;
        Mat dst;
    private slots:
        void OpenImgsSlot();
        void ErodeImgeSlot();
    };
    
    #endif
    

    效果展示:


    打开图片
    腐蚀图片

    相关文章

      网友评论

          本文标题:基于VS下的Qt 界面设计

          本文链接:https://www.haomeiwen.com/subject/kgzdoftx.html