Qt5xhb tem suporte a navegador?
Moderador: Moderadores
Qt5xhb tem suporte a navegador?
Pessoal, é possível ter meu próprio navegador baseado no Chrome V8 ?
-
marcosgambeta
- Usuário Nível 3

- Mensagens: 332
- Registrado em: 16 Jun 2005 22:53
Qt5xhb tem suporte a navegador?
O Qt 5 usava o WebKit nas primeiras versões, mas depois adotou o Chromium (Qt 5.4 em diante):
https://wiki.qt.io/QtWebEngine
Os módulos estão implementados no Qt5xHb: QtWebEngine, QtWebEngineCore e QtWebEngineWidgets.
Um exemplo básico seria assim:
https://wiki.qt.io/QtWebEngine
Os módulos estão implementados no Qt5xHb: QtWebEngine, QtWebEngineCore e QtWebEngineWidgets.
Um exemplo básico seria assim:
Código: Selecionar todos
/*
Qt5xHb Project - Test Program
Copyright (C) 2020 Marcos Antonio Gambeta
E-mail:
marcosgambeta AT outlook DOT com
Website:
https://github.com/marcosgambeta/Qt5xHb
*/
#include "qt5xhb.ch"
PROCEDURE Main ()
LOCAL oApp
LOCAL oWindow
LOCAL oWebEngineView
oApp := QApplication():new()
QtWebEngine():initialize()
oWindow := QWidget():new()
oWindow:setWindowTitle("Teste da classe QWebEngineView")
oWindow:resize(800,600)
oWebEngineView := QWebEngineView():new(oWindow)
oWebEngineView:move(20,20)
oWebEngineView:resize(800-40,600-40)
cHTML := ""
cHTML += "<html>"
cHTML += "<head>"
cHTML += "<title>"
cHTML += "Teste"
cHTML += "</title>"
cHTML += "</head>"
cHTML += "</html>"
cHTML += "<body>"
cHTML += "<h1>"
cHTML += "<p>"
cHTML += "Teste"
cHTML += "</p>"
cHTML += "</h1>"
cHTML += "</body>"
oWindow:show()
// use sempre depois do 'show'
oWebEngineView:setHtml(cHTML)
oApp:exec()
oWindow:delete()
oApp:delete()
RETURN
- Anexos
-
- Teste com a classe QWebEngineView
- QWebEngineView1.png (8.35 KiB) Exibido 3620 vezes
Atenciosamente,
Marcos Antonio Gambeta
Marcos Antonio Gambeta
Qt5xhb tem suporte a navegador?
Obrigado, pelo exemplo já posso visualizar a página, mas ainda não posso acessar remotamente, é isso ?
É porque eu quero ver se consigo executar alguma operação na máquina cliente lendo o HTML retornado pelo navegador. Já fiz isso há muito tempo mas no componente navegador da Microsoft. Era em access. Eu ficava lendo o HTML vindo do servidor e poderia ler algumas tags específicas que eu mesmo inventava. Dentro dessas tags tinha comandos que eu interpretava com a aplicação e executava. Dava pra interagir com periféricos, etc.
Mas se não der pra fazer isso tudo bem. O mais importante é ter um navegador.
Muito obrigado pelo retorno.
É porque eu quero ver se consigo executar alguma operação na máquina cliente lendo o HTML retornado pelo navegador. Já fiz isso há muito tempo mas no componente navegador da Microsoft. Era em access. Eu ficava lendo o HTML vindo do servidor e poderia ler algumas tags específicas que eu mesmo inventava. Dentro dessas tags tinha comandos que eu interpretava com a aplicação e executava. Dava pra interagir com periféricos, etc.
Mas se não der pra fazer isso tudo bem. O mais importante é ter um navegador.
Muito obrigado pelo retorno.
-
marcosgambeta
- Usuário Nível 3

- Mensagens: 332
- Registrado em: 16 Jun 2005 22:53
Qt5xhb tem suporte a navegador?
É possível acessar arquivos locais e sites da internet (http/https).
Mas há outras formas de acessar o conteúdo de uma página. Veja o exemplo abaixo, onde são utilizadas classes do módulo QtNetwork (rede e internet):
Se não houver necessidade de visualização/navegação, as classes do módulo QtNetwork podem ser suficientes.
Mas há outras formas de acessar o conteúdo de uma página. Veja o exemplo abaixo, onde são utilizadas classes do módulo QtNetwork (rede e internet):
Código: Selecionar todos
/*
Qt5xHb Project - Test Program
Copyright (C) 2020 Marcos Antonio Gambeta
E-mail:
marcosgambeta AT outlook DOT com
Website:
https://github.com/marcosgambeta/qt5xhb
*/
#include "qt5xhb.ch"
PROCEDURE Main()
LOCAL oApp
LOCAL oWindow
LOCAL oTextEdit
LOCAL oButton
oApp := QApplication():new()
oWindow := QWidget():new()
oWindow:setWindowTitle( "Teste da classe QNetworkAccessManager" )
oWindow:resize( 800, 600 )
oTextEdit := QTextEdit():new( oWindow )
oTextEdit:move( 20, 20 )
oTextEdit:resize( 800 - 40, 600 - 40 )
oButton := QPushButton():new( "GetHTML", oWindow )
oButton:move( 0, 0 )
oButton:resize( 100, 20 )
oButton:onClicked( {|| oTextEdit:setPlainText( getHTML( "https://www.qt.io" ) ) } )
oWindow:show()
oApp:exec()
oWindow:delete()
oApp:delete()
RETURN
STATIC FUNCTION getHTML( cURL )
LOCAL oManager
LOCAL oResponse
LOCAL lReady := .F.
LOCAL cHTML := ""
oManager := QNetworkAccessManager():new()
oResponse := oManager:get( QNetworkRequest():new( QUrl():new( cURL ) ) )
oResponse:onFinished( {|| lReady := .T. } )
DO WHILE !lReady
QCoreApplication():processEvents()
ENDDO
cHTML := oResponse:readAll():constData()
oResponse:onFinished()
oManager:delete()
RETURN cHTML
Atenciosamente,
Marcos Antonio Gambeta
Marcos Antonio Gambeta
-
marcosgambeta
- Usuário Nível 3

- Mensagens: 332
- Registrado em: 16 Jun 2005 22:53
Qt5xhb tem suporte a navegador?
Com respeito à navegação na internet, este é um exemplo que criei na época em que testei o QtWebEngine:
É um mini-navegador com alguns recursos básicos implementados.
Sobre o uso do QtWebEngine no Windows, tem este detalhe: é preciso usar o Qt para MSVC, pois o Chromium não compila com MinGW.
Código: Selecionar todos
/*
Qt5xHb Project - Test Program
Copyright (C) 2020 Marcos Antonio Gambeta
E-mail:
marcosgambeta AT outlook DOT com
Website:
https://github.com/marcosgambeta/Qt5xHb
*/
#include "qt5xhb.ch"
PROCEDURE Main ()
LOCAL oApp
LOCAL oWindow
LOCAL oPushButtonHome
LOCAL oPushButtonBack
LOCAL oPushButtonForward
LOCAL oPushButtonReload
LOCAL oPushButtonStop
LOCAL oLabel
LOCAL oLineEdit
LOCAL oPushButtonGo
LOCAL oWebEngineView
LOCAL oUrlHome
oApp := QApplication():new()
QtWebEngine():initialize()
oUrlHome := QUrl():new("http://www.qt.io")
oWindow := QWidget():new()
oWindow:setWindowTitle("Navigator")
oWindow:resize(1024,768)
// cria os objetos da janela
oPushButtonHome := QPushButton():new("Home", oWindow):move(20,20):resize(50,30)
oPushButtonBack := QPushButton():new("Back", oWindow):move(70,20):resize(50,30)
oPushButtonForward := QPushButton():new("Forward", oWindow):move(120,20):resize(50,30)
oPushButtonReload := QPushButton():new("Reload", oWindow):move(170,20):resize(50,30)
oPushButtonStop := QPushButton():new("Stop", oWindow):move(220,20):resize(50,30)
oLabel := QLabel():new("URL:", oWindow):move(270,20):resize(50,30):setAlignment(Qt_AlignCenter)
oLineEdit := QLineEdit():new("http://www.qt.io", oWindow):move(320,20):resize(300,30)
oPushButtonGo := QPushButton():new("Go", oWindow):move(620,20):resize(50,30)
oWebEngineView := QWebEngineView():new(oWindow)
oWebEngineView:move(20,70)
oWebEngineView:resize(1024-40,768-20-70)
// configura as ações que serão executadas pelos botões
oPushButtonHome:onClicked( {||oWebEngineView:load( oUrlHome )} )
oPushButtonBack:onClicked( {||oWebEngineView:back()} )
oPushButtonForward:onClicked( {||oWebEngineView:forward()} )
oPushButtonReload:onClicked( {||oWebEngineView:reload()} )
oPushButtonStop:onClicked( {||oWebEngineView:stop()} )
oPushButtonGo:onClicked( {||oWebEngineView:load(QUrl():new(oLineEdit:text()))} )
// carrega a página se pressionar ENTER no campo de digitação
oLineEdit:onReturnPressed( {||oWebEngineView:load(QUrl():new(oLineEdit:text()))} )
// atualiza o título da janela sempre que o título da página mudar
oWebEngineView:onTitleChanged( {|pSender,cTitle|oWindow:setWindowTitle("Navigator - " + cTitle)} )
// atualiza o tamanho do objeto QWebEngineView sempre que o tamanho da janela mudar
oWindow:onResizeEvent( {||oWebEngineView:resize(oWindow:width()-40,oWindow:height()-20-70)} )
oWindow:show()
oWebEngineView:load( oUrlHome )
oApp:exec()
oWindow:delete()
oApp:delete()
RETURN
Sobre o uso do QtWebEngine no Windows, tem este detalhe: é preciso usar o Qt para MSVC, pois o Chromium não compila com MinGW.
Atenciosamente,
Marcos Antonio Gambeta
Marcos Antonio Gambeta
Qt5xhb tem suporte a navegador?
Valeu
Teria alguma versão do MSVC específica ? Eu nunca usei o MSVC. Poderia me passar um link ?
Obrigado
Teria alguma versão do MSVC específica ? Eu nunca usei o MSVC. Poderia me passar um link ?
Obrigado
-
marcosgambeta
- Usuário Nível 3

- Mensagens: 332
- Registrado em: 16 Jun 2005 22:53
Qt5xhb tem suporte a navegador?
Estou usando o Visual Studio Community 2019, mas tenho também versões anteriores instaladas.Vlademiro escreveu:Teria alguma versão do MSVC específica ? Eu nunca usei o MSVC. Poderia me passar um link ?
https://visualstudio.microsoft.com/pt-br/
É preciso instalar as ferramentas de linha de comando (desenvolvimento em C/C++).
Mas vou revisar esta parte, pois dependendo da versão do Qt que usar, poderá precisar de uma versão anterior ao 2019.
A versão mais recente do Qt é a 5.15.0, mas na versão para MSVC, mostrou instabilidade no QtWebEngine. Como é uma versão .0, pode ter passado algum bug que virá corrigido na versão 5.15.1.
Atenciosamente,
Marcos Antonio Gambeta
Marcos Antonio Gambeta
