WebView Python

38 views
Skip to first unread message

Everson Soluções WEB

unread,
Nov 13, 2021, 8:26:04 AM11/13/21
to Grupy-SP - Grupo de usuários Python na cidade de São Paulo
Bom dia, tenho um sistema que funciona web... porém estou com alguns problemas com os nagevadores existentes no mercado..

criei um script no python e gerei um browser para o que preciso, mas nã o estou conseguindo fazer abrir uma nova janela quando uso o comanda window.open do javacript.

o que preciso adicionar no script py para funcionar?

#!/usr/bin/python
import platform, json, sys, atexit, os
from PyQt5 import QtPrintSupport
from PyQt5 import QtWidgets
from PyQt5 import QtWebEngineWidgets
from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QIcon
from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineView
from PyQt5.QtWidgets import QMainWindow, QApplication

def toggle_service(name, action):
    cmd = 'net {} \'{}\'"'.format(action, name)
    os.system(cmd)

with open("config_system.json") as file:
    jsonDados = json.load(file)

class Window(QMainWindow) :
    def __init__(self):
        super().__init__()

        self.setWindowIcon(QIcon('Icone-Sistema-transparente.ico'))
        self.setWindowTitle("Dea Plus - Frente de caixa")
        self.setGeometry(0,0, 1024, 768)
        self.setMinimumHeight(768)
        self.setMinimumWidth(1024)
        self.showMaximized()

        self.web = QWebEngineView()
        self.page = QtWebEngineWidgets.QWebEnginePage(self)
        self.web.setPage(self.page)
        self.page.printRequested.connect(self.printRequested)
        self.setCentralWidget(self.web)
        self.web.setGeometry(0,0, self.geometry().width(), self.geometry().height())
        self.web.load(QUrl(jsonDados['url']))

    def printRequested(self):
        defaultPrinter = QtPrintSupport.QPrinter(
            QtPrintSupport.QPrinterInfo.defaultPrinter())
        dialog = QtPrintSupport.QPrintDialog(defaultPrinter, self)
        if dialog.exec():
            # printer object has to be persistent
            self._printer = dialog.printer()
            self._printer.setResolution(600)
            self.page.print(self._printer, self.printResult)

    def printResult(self, success):
        if success:
            QtWidgets.QMessageBox.information(self, 'Impressão concluída',
                'A impressão foi concluída!', QtWidgets.QMessageBox.Ok)
        else:
            QtWidgets.QMessageBox.warning(self, 'Print failed',
                'A impressão falhou!', QtWebEngineWidgets.QMessageBox.Ok)
            self.printRequested()
        del self._printer

app = QApplication(sys.argv)
window = Window()
window.show()

sys.exit(app.exec_())

Reply all
Reply to author
Forward
0 new messages