PDA

View Full Version : How to use QWebView default context menu?



tiaoweiliao
16th August 2017, 04:54
hi all.

i use Qt 5.4.2 , windows 7.

i use QWebView load my html , my html include images.

when i mouse right button pressed , QWebView default context menu is display.

i see menu atcion has [open image] , [save image] , [copy image] , [copy image address].

i use [copy image] and [copy image address] is valid.

but [open image] and [save image] invalid , i want get this image src or other image information when [open image] [save image] tiggered.

please help me.

tiaoweiliao
22nd August 2017, 04:36
Why no one reply to me?:crying:

tiaoweiliao
25th August 2017, 10:49
I found the answer.

when "Save Image" aticon clicked , i received downloadRequested signals.

i get image src from QNetworkRequest.


connect(this->page(),SIGNAL(downloadRequested(QNetworkRequest)), this,SLOT(slt_downloadRequested(QNetworkRequest))) ;


if "Open Image" aticon clicked :



#define Flag_OpenImage 0
#define Flag_SaveImage 1

connect(this->pageAction(QWebPage::OpenImageInNewWindow),SIGNAL( triggered(bool)),this,SLOT(slt_openImage_triggered ()));
connect(this->pageAction(QWebPage::OpenImageInNewWindow),SIGNAL( triggered(bool)),this->pageAction(QWebPage::DownloadImageToDisk),SIGNAL(t riggered(bool)));

void slt_openImage_triggered(){
m_iDefultMenuFlag = Flag_OpenImage;
}

void slt_downloadRequested{
if(m_iDefultMenuFlag == Flag_OpenImage){
//do something ...
}else if(m_iDefultMenuFlag == Flag_SaveImage){
//do something ...
}
}


Thanks to the http://www.qtcentre.org .