要实现双击图片后打开自己的软件,首先是在系统中进行设置:
右击图片——属性——更改,如下图:
然后点击“在这台电脑上查找其他应用”,选择你编译出的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运行程序,具体过程见我的博客:
https://blog.csdn.net/weixin_43935474/article/details/93137932
下面看一下我双击图片打开程序的效果: