[Qt5.8]如何使用QWebEnginePage::OpenLinkInNewTab
How to use QWebEnginePage::OpenLinkInNewTab [Qt5.8]
当我使用此代码单击 link 以回答我在 Quora 上的提要中的任何问题时,link 不会打开,但不会打印 "Hello"。你能告诉我我哪里错了吗?我很确定 quora 上的 link 会发出 OpenLinkInNewTab
信号。请帮忙,谢谢。
class WebView : public QObject {
void newTabRequested() {
std::cout<<"Hello"<<std::endl;
}
public:
char* home_page;
QAction* newTabAction=new QAction();
QWebEngineView* view=new QWebEngineView();
WebView(char* page=(char*)"https://google.com") {
this->home_page=page;
this->exitFullScreen->setShortcut(Qt::Key_Escape);
createWebView();
this->view->settings()
->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows,true);
this->newTabAction=this->view->pageAction(QWebEnginePage::OpenLinkInNewTab);
connect(this->newTabAction,&QAction::toggled,this,&WebView::newTabRequested);
}
void createWebView() {
this->view->load(QUrl(this->home_page));
}
};
我认为问题在于 newTabRequested
不是插槽。尝试
class WebView : public QObject{
Q_OBJECT
private slots:
void newTabRequested(){
std::cout<<"Hello"<<std::endl;
}
// ...
}
当我使用此代码单击 link 以回答我在 Quora 上的提要中的任何问题时,link 不会打开,但不会打印 "Hello"。你能告诉我我哪里错了吗?我很确定 quora 上的 link 会发出 OpenLinkInNewTab
信号。请帮忙,谢谢。
class WebView : public QObject {
void newTabRequested() {
std::cout<<"Hello"<<std::endl;
}
public:
char* home_page;
QAction* newTabAction=new QAction();
QWebEngineView* view=new QWebEngineView();
WebView(char* page=(char*)"https://google.com") {
this->home_page=page;
this->exitFullScreen->setShortcut(Qt::Key_Escape);
createWebView();
this->view->settings()
->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows,true);
this->newTabAction=this->view->pageAction(QWebEnginePage::OpenLinkInNewTab);
connect(this->newTabAction,&QAction::toggled,this,&WebView::newTabRequested);
}
void createWebView() {
this->view->load(QUrl(this->home_page));
}
};
我认为问题在于 newTabRequested
不是插槽。尝试
class WebView : public QObject{
Q_OBJECT
private slots:
void newTabRequested(){
std::cout<<"Hello"<<std::endl;
}
// ...
}