Quello che stai chiedendo è impossibile da fare nel modo in cui lo immagini. openUrl() utilizza il sistema operativo per specificare il programma per aprire l'argomento come indicato nella relativa documentazione.
Potrebbe esserci qualche soluzione alternativa, ma nessuna funzionerà bene o funzionerà su tutti i browser. È solo che questo tipo di controllo a grana fine è probabilmente impossibile per te.
Se si desidera il controllo di una scheda in un browser, è possibile trovare la finestra rappresentata da tale scheda e chiuderla prima di aprire quella nuova. Questa soluzione è un po 'hacky.
Un'altra soluzione hacky consiste nel trovare l'HWND della casella di modifica che contiene l'URL e provare a cambiare il testo utilizzando SendMessage()
. Ciò non funzionerà su Chrome, tuttavia, poiché non utilizza un controllo separato per la finestra URL. Potrebbe funzionare su Firefox o IE.
La soluzione migliore è quella di creare il proprio browser Web che controlli utilizzando Qt WebKit. È piuttosto semplice eseguire il rendering di una pagina e modificare l'URL visualizzato. QWebView è un'implementazione facile da usare di QtWebKit.
Hi Elwood, hai mai trovato una soluzione a questo? Ho esattamente lo stesso problema: http://stackoverflow.com/questions/15116760/open-a-web-page-from-a-desktop-app-repeatedly-in-same-window – sipi
Sipickles: Siamo spiacenti, no. Sembra che non sia possibile. Stavo pensando di creare un file HTML locale con '' al suo interno e quindi sovrascrivendo questo file su richiesta. Ma non l'ho ancora provato e questo approccio ha probabilmente alcuni aspetti negativi. – Elwood
Sto cercando la stessa cosa (aperto nella stessa scheda) ma preferibilmente in Qt5. Ma vorrei anche prendere una soluzione Qt4. – amenthes