qt实现双击图片后用自己的软件打开并显示

392 阅读2分钟

要实现双击图片后打开自己的软件,首先是在系统中进行设置:
右击图片——属性——更改,如下图:
在这里插入图片描述
然后点击“在这台电脑上查找其他应用”,选择你编译出的exe程序,如下图:
在这里插入图片描述
这样子,今后我在电脑里双击打开.jpg图片的时候都是通过自己的我的EditPic.exe来打开了。
接下来讲一下我们的程序,这是main函数:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);//argc表示打开程序的时候,程序获取到的参数个数
    MainWindow w;
    QString str1;
    if(argc>1)
    {
        str1 = argv[1];
        //如果是直接双击exe打开本程序,那么程序获取到的参数个数为1,argv[0]里面是本exe文件所在的全路径
        //如果是通过双击图片之后,系统打开本程序,那么程序获取到的参数个数为2,argv[0]里面是本exe文件所在的全路径,argv[1]里面是本图片文件的全路径
    }
    w.show();//显示主窗口
    w.OpenPic(str1);//显示图片
    return a.exec();
}

这是显示图片的函数:

void MainWindow::OpenPic(QString strStartPath)
{
    //strStartPath = "D:\\Documents\\Pictures\\desktop.jpg";
    QString str = "you have opened file:";
    ui->textEdit->append(str);
    ui->textEdit->append(strStartPath);//在界面下方的textedit中显示你打开的文件的全路径

    QImage qimg;
    qimg.load(strStartPath);
    recvShowPicSignal(qimg);//这是我用来在界面上显示图片的函数
}

注:recvShowPicSignal(qimg);//这是我用来在界面上显示图片的函数,具体参见我之前的博客https://blog.csdn.net/weixin_43935474/article/details/89327314

到这儿差不多就结束了,但用qtcreator开发出来的程序,编译后,工程目录下的exe文件不能直接双击运行,我们需要打包之后才能直接双击exe运行程序,具体过程见我的博客:
blog.csdn.net/weixin_4393…
下面看一下我双击图片打开程序的效果:
在这里插入图片描述