class HelpWidget(QWidget):
    def __init__(self, main, *args, **kwargs):
        super().__init__(*args, **kwargs)
        uic.loadUi(
            os.path.join(os.path.dirname(__file__), "ui", "HelpDialog.ui"),
            self)

        self.closeButton.pressed.connect(self.close)
        self.openBrowserButton.pressed.connect(self.open_in_browser)
        self.homeButton.pressed.connect(self.reset_url)

        self.main = main

        self.webview = QWebView()
        self.reset_url()

        self.contentWidget.layout().addWidget(self.webview)

    def reset_url(self):
        self.webview.setUrl(
            # TODO : change URL to actual documentation page
            QUrl("https://docs.traveltimeplatform.com/overview/introduction"))

    def open_in_browser(self):
        webbrowser.open(self.webview.url().toString())
        self.close()
Пример #2
0
class QvBrowser(QWidget):
    svMogut = pyqtSignal(float, float)

    def __init__(self, parent):
        QWidget.__init__(self)
        self.parent = parent
        self.browser = QWebView()
        self.browser.setContentsMargins(0, 0, 0, 0)
        # self.browser.setUrl(QUrl("http://www.qt.io"))
        self.browser.resize(512, 375)
        self.browser.show()
        self.setContentsMargins(0, 0, 0, 0)

        self.layoutBrowser = QVBoxLayout(self)
        self.layoutBrowser.setContentsMargins(0, 0, 0, 0)
        self.layoutBrowser.setSpacing(0)

        self.botoneraQvBrowser = QFrame()
        self.botoneraQvBrowser.setContentsMargins(0, 0, 0, 0)
        self.botoneraQvBrowser.setMinimumHeight(30)
        self.botoneraQvBrowser.setMaximumHeight(45)
        # self.botoneraQvBrowser.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
        # self.botoneraQvBrowser.setVerticalPolicy(QSizePolicy.Minimum)

        self.layoutBotonera = QHBoxLayout(self.botoneraQvBrowser)
        self.layoutBotonera.setContentsMargins(0, 0, 0, 0)
        self.layoutBotonera.setAlignment(Qt.AlignCenter)
        self.botoneraQvBrowser.setLayout(self.layoutBotonera)

        # self.botoTancar = BotoQvBrowser()
        # self.botoTancar.setText('SORTIR')
        # self.botoTancar.clicked.connect(self.tancar)
        # self.botoTancar.show()

        # self.botoOSM = BotoQvBrowser()
        # self.botoOSM.setText('OpenStreet Maps')
        # self.botoOSM.clicked.connect(self.openStreetMaps)

        self.botoGoogleMaps = BotoQvBrowser()
        self.botoGoogleMaps.setText('Google Maps')
        self.botoGoogleMaps.clicked.connect(self.openGoogleMaps)

        self.botoStreetView = BotoQvBrowser()
        self.botoStreetView.setText('Street view')
        self.botoStreetView.clicked.connect(self.openStreetView)

        self.browser.urlChanged.connect(self.extreuCoordenades)

        # self.layoutBotonera.addWidget(self.botoOSM)
        self.layoutBotonera.addWidget(self.botoGoogleMaps)
        self.layoutBotonera.addWidget(self.botoStreetView)
        self.layoutBrowser.addWidget(self.botoneraQvBrowser)
        self.layoutBrowser.addWidget(self.browser)
        self.setLayout(self.layoutBrowser)
        # https://www.openstreetmap.org/#map=17/41.38740/2.17272

    def openGoogleMaps(self):
        self.browser.setUrl(QUrl(self.parent.urlGoogleMaps))

    def openStreetMaps(self):
        # self.browser.setUrl(QUrl('https://www.openstreetmap.org/#map=16/41.38740/2.17272'))
        self.browser.setUrl(QUrl(self.parent.urlStreetMaps))

    def openStreetView(self):
        self.browser.setUrl(QUrl(self.parent.urlStreetView))

    def extreuCoordenades(self, url):
        urlStr = url.url()
        URLMAPS = 'https://www.google.com/maps/@'
        URLSV = 'https://www.google.com/maps?layer=c&cbll='
        URLOSM = 'https://www.openstreetmap.org/#map=16/'
        if URLSV in urlStr:
            urlStr = urlStr.replace(URLSV, '')
            y, x = urlStr.split(',')
        elif URLMAPS in urlStr:
            urlStr = urlStr.replace(URLMAPS, '')
            sp = urlStr.split(',')
            y, x = sp[0], sp[1]

        elif URLOSM in urlStr:
            #Fer el que toqui
            return
        else:
            return
        x, y = float(x), float(y)
        # self.svMogut.emit(x,y)
        self.svMogut.emit(x, y)

    def tancar(self):
        print('sortir')
        self.hide()