找回密码
 立即注册
收起左侧

Qt如何自定义槽函数

3
回复
8855
查看
[复制链接]

尚未签到

来源: 2016-5-5 21:10:29 显示全部楼层 |阅读模式
1Qter豆
//pi_show.hpp
#include <QObject>
#include <QDialog>
class pi_show : public QObject {
        Q_OBJECT
public:
        pi_show(QObject * parent = Q_NULLPTR);
public slots://自定义的槽
    int pi_show::myshow();
};

//pi_show.cpp
#include "pi_show.hpp"
#include"highgui.h"
pi_show::pi_show(QObject * parent)
        : QObject(parent)
{       
}
int pi_show::myshow()
{
        int argc;
        char** argv;
        IplImage* img = cvLoadImage("E://Qtproject//exp2//exp2//Example1.jpg");
        cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
        cvShowImage("Example1", img);
        cvWaitKey(0);
        cvReleaseImage(&img);
        cvDestroyWindow("Example1");
        return 0;
}

//main.cpp
#include <QApplication>
#include <QPushButton>
#include<QProcess>
#include"pi_show.hpp"
int main(int argc, char *argv[])
{
        QApplication app(argc, argv);
        QPushButton *button = new QPushButton("show");//定义一个按键
        pi_show pa;
        QObject::connect(button, SIGNAL(clicked()), &app, SLOT(pa.myshow()));  
        button->show();
        return app.exec();
}

请问这样子自定义槽函数有错吗?为什么按下按键没有进入自定义的槽?这是在VS2015上写的,新手求指导!!!

最佳答案

查看完整内容

QObject::connect(button, SIGNAL(clicked()), &app, SLOT(pa.myshow())); 这句改为 QObject::connect(button, SIGNAL(clicked()), &pa, SLOT(myshow()));
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-5-5 21:10:30 显示全部楼层
QObject::connect(button, SIGNAL(clicked()), &app, SLOT(pa.myshow()));  
这句改为 QObject::connect(button, SIGNAL(clicked()), &pa, SLOT(myshow()));  
回复

使用道具 举报

累计签到:12 天
连续签到:1 天
2016-5-5 21:44:03 显示全部楼层
把connect里的&app 换成&pa
回复

使用道具 举报

尚未签到

2016-5-7 18:59:58 显示全部楼层
renhm 发表于 2016-5-5 21:44
把connect里的&app 换成&pa

改成&pa了还是不行,点击按键还是打不开我的pi_show.cpp里面的东西,我是在VS2015上面编译的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了