[Solved] Advice needed: Reload page on "F5"
-
[ It should be easy to solve, but I found no good starting point. ]
A reload in my application (i.e. a QWebView that loads a html page) already works because I can right-click on a page and select 'Reload'. This seems to be enabled by default, I did not have to do anything to enable this.
What do I have to do, to achieve a reload by just pressing F5 as we know it from standard browsers? A hint to lead me into the right direction should be enough.
Thanks in advance!
-
@QKeySequence keys_refresh(Qt::Key_F5);
this->action_refresh = new QAction(this->view);
this->action_refresh->setShortcut(keys_refresh);
connect(this->action_refresh, SIGNAL(triggered()),this->view,SLOT(reload()));
@ -
Topic subject is : Reload page on “F5” ;)
-
But I think QKeySequence::Refresh & Qt::Key_F5 are synonyms, at least for X11 & WIN platforms. isn't they?
-
Yes, they are. And if you're only on platforms that use F5, it makes no difference for you. But why use something hardcoded, when there's a general solution.
And if someone is not aware of the standard key sequences, how should that be reflected in the topic title?
-
Thanks so far!
Unfortunately it's not working. Can you see what's wrong? For ease of use, I put the code in the main.cpp, which I will not do in the end, but right now it makes it easier to trace my mistake...@
//extract from main.cpp:
QApplication app(argc, argv);
QWebView window;
//[ ... some connects on window->page() and window->page()->mainFrame() ...]
QKeySequence keys_refresh(QKeySequence::Refresh); //or (Qt::Key_F5), doesn't matter
QAction* actionReload = new QAction(&window);
actionReload->setShortcut(keys_refresh);
QObject::connect(actionReload, SIGNAL(triggered()), &window, SLOT(reload()));window.load(QUrl("file:///C:/start.html"));
window.show();
app.exec();
@If I make right-click -> reload on my html page, the page gets reloaded, but not if I press F5.
[Edit: Even if I make s subclass and override the reload() slot, I see that the slot is not called. So either the action is not triggered, or the signal-slot connection is wrong] -
you have forget to add action to WebView:
@window.addAction(actionReload);@
-
[quote author="AcerExtensa" date="1335439172"]you have forget to add action to WebView:
@window.addAction(actionReload);@[/quote]
Great, I was just wondering what kind of black magic binds the action to the window :-) Okay, that's it. Thank you all (also thanks for the first answer, maybe I will also have to use the keyPressEvent() override for some other stuff, but for the reload it's easier to use QActions.)
-
If nothing changed during my lengthy absence from this forum, you should now change the topic's title/ subject to include "[Solved]" at the beginning. I've also tagged it for you.