示例#1
0
    def __init__(self):
        QtWebEngineWidgets.QWebEngineView.__init__(self)
        hpxqt_mng.WindowManagerMixIn.__init__(self)
        hpxqt_upgrade.WindowUpdateMixIn.__init__(self)

        # Connect to signals
        self.signal_minimize_tray.connect(self.action_minimize_tray)
        self.signal_upgrade_status_change.connect(
            self.upgrade_status_change_ui)

        # Initialize paths
        self.media = hpxqt_utils.get_media_dir_path()
        self.templates = hpxqt_utils.get_templates_dir_path()
        self.db_path = hpxqt_utils.get_db_file_path()

        # Initialize WebChannel
        self.channel = QtWebChannel.QWebChannel(self.page())
        self.router = Router(window=self)
        self.channel.registerObject("router", self.router)
        self.page().setWebChannel(self.channel)

        # Define window settings
        self.name = hpxqt_consts.APP_NAME
        self.setWindowTitle(hpxqt_consts.APP_TITLE)
        self.resize(400, 480)
        self.setWindowIcon(self._get_icon())

        self._create_tray_icon()
        self.trayIcon.show()
示例#2
0
    def __init__(self, widget_handled, ui):
        """ Initializes Main App.
        args:
            widget_handled: For this widget events are handeled by MainApp
            ui: User interface
        """
        QWidget.__init__(self, widget_handled)

        self.ui = ui
        self.widget_handled = widget_handled  #Widget for event Handling. All events are checked and if not arrow keys passed on. See eventFilter below
        self.source_dir = ""
        self.tensor_loader = MicroTomographyAnalyzer.TensorLoader()
        self.tensor = None

        self.Mesh3d = MicroTomographyAnalyzer.Mesh3dDisplay(self)

        self.slicer = MicroTomographyAnalyzer.Slicer(self)
        self.rotator = MicroTomographyAnalyzer.Rotator(self)

        self.slice_xy = True
        self.slice_xz = False
        self.slice_yz = False
        self.current_slice = 0

        #Prepare the webview
        file = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                            "react/plot_3d/build/index.html")
        self.ui.webEngineView.setUrl(QtCore.QUrl.fromLocalFile(file))
        channel = self.channel = QtWebChannel.QWebChannel()
        channel.registerObject("MainWindow", self)
        self.ui.webEngineView.page().setWebChannel(channel)
        self.make_connections()
    def attach_to_web_engine_view(self, web_engine_view):
        """
        Attach the labeller to a `QtWebEngineWidgets.QWebEngineView` widget

        WARNING: You must ensure that a reference to this object (`self`) is kept around/alive as long
        as it is needed for display in a web engine view. As of Qt 5.9.7 and PyQt 5.9.2 (the versions
        available on Anaconda that this was tested on in Mar/2021), the call to `QWebChannel.registerObject`
        that is made in the `attach_to_web_engine_view` method does *not* seem to prevent Python's
        garbage collector from deleting `self`. As a consequence, it is important to ensure that
        a reference to `self` is kept as long as it is needed for display.
        Currently the `attach_to_web_engine_view` assist this by assigning a reference to `self`
        to the `_django_labeller` attribute of the `QtWebEngineWidgets.QWebEngineView` object
        passed as a parameter. If you need `self` to last longer, please keep a reference to it.

        :param web_engine_view: A `QtWebEngineWidgets.QWebEngineView` instance that is the widget in which the
            labeller is to be rendered
        """
        # Start the Flask server if its not already running
        self._server.start_flask_server()
        # Create a QWebChannel to communicate with the client-side Javascript code
        channel = QtWebChannel.QWebChannel(web_engine_view.page())
        web_engine_view.page().setWebChannel(channel)
        # Register self as `qt_tool` as the `labeller_control_qt.jinja2` template will attempte to find it here
        channel.registerObject("qt_tool", self)
        # Get the server url
        tool_url = self._server.server_url(tool_id=self._tool_id,
                                           dextr_available=self._dextr_fn
                                           is not None)
        # Have the web view widget navigate there
        web_engine_view.setUrl(QtCore.QUrl(tool_url))
        # Set the '_django_labeller' attribute so that self is not garbage collected while
        # `web_engine_view` still exists
        web_engine_view._django_labeller = self
示例#4
0
文件: map.py 项目: donghee/CodingLife
    def __init__(self):
        super(MapWindow, self).__init__()
        self.setFixedSize(200, 200)
        vbox = QtWidgets.QVBoxLayout()
        self.setLayout(vbox)

        label = self.label = QtWidgets.QLabel()
        sp = QtWidgets.QSizePolicy()
        sp.setVerticalStretch(0)
        label.setSizePolicy(sp)
        vbox.addWidget(label)
        view = self.view = QtWebEngineWidgets.QWebEngineView()
        channel = self.channel = QtWebChannel.QWebChannel()

        channel.registerObject("MapWindow", self)
        view.page().setWebChannel(channel)

        file = os.path.join(
            os.path.dirname(os.path.realpath(__file__)),
            "map.html",
        )
        self.view.setUrl(QtCore.QUrl.fromLocalFile(file))
        vbox.addWidget(view)

        self.panMap(47.397742, 8.545594)
示例#5
0
 def setupUi(self, MainWindow):
     super(MyUi_MainWindow, self).setupUi(MainWindow)
     self.MainWindow = MainWindow
     self.sciScintilla.ui = self
     self.webEngineView.ui = self
     # 对Preview(使用QWebEngineView)进行初始化
     self.webEnginePage = MyWebEnginePage(self.MainWindow)
     self.webEngineView.setPage(self.webEnginePage)
     self.sciScintilla.textChanged.connect(
         lambda: self.Content.setText(self.sciScintilla.text()))
     WebChannel = QtWebChannel.QWebChannel(self.MainWindow)
     WebChannel.registerObject("content", self.Content)
     self.webEnginePage.setWebChannel(WebChannel)
     self.webEngineView.setUrl(QtCore.QUrl("qrc:/Resources/index.html"))
     # 对Editor(使用QsciScintilla)进行初始化
     self.openFile(self.Home, "file")
     # 设置各控件是否显示
     self.selectVisible(False, True)
     self.selectToolBar(0)
     # 连接信号和槽
     self.MainWindow.retranslateUi.connect(self.retranslateUi)
     self.MainWindow.selectVisible.connect(self.selectVisible)
     # -> 导航菜单事件
     self.MainWindow.backSignal.connect(self.backSolt)
     self.MainWindow.forwardSignal.connect(self.forwardSolt)
     self.MainWindow.reloadMarkDownSignal.connect(self.reloadMarkDownSolt)
     self.MainWindow.homeSignal.connect(self.homeSolt)
     self.MainWindow.restoreSignal.connect(self.restoreSolt)
     self.MainWindow.topSignal.connect(self.topSolt)
     self.MainWindow.bottomSignal.connect(self.bottomSolt)
     self.webEnginePage.openFile.connect(self.openFile)
     self.sciScintilla.linesChanged.connect(self.linesChanged)
     # self.sciScintilla.textChanged.connect(self.textChanged)
     self.sciScintilla.mousePress.connect(self.selectToolBar)
     self.webEngineView.mousePress.connect(self.selectToolBar)
示例#6
0
    def setupUi(self):
        # self.setFixedSize(800, 500)
        vbox = QtWidgets.QVBoxLayout()
        self.setLayout(vbox)

        label = self.label = QtWidgets.QLabel()
        sp = QtWidgets.QSizePolicy()
        sp.setVerticalStretch(0)
        label.setSizePolicy(sp)
        vbox.addWidget(label)
        view = self.view = QtWebEngineWidgets.QWebEngineView()
        channel = self.channel = QtWebChannel.QWebChannel()

        channel.registerObject("MainWindow", self)
        view.page().setWebChannel(channel)

        file = os.path.join(
            os.path.dirname(os.path.realpath(__file__)),
            "./map.html",
        )
        self.view.setUrl(QtCore.QUrl.fromLocalFile(file))

        vbox.addWidget(view)

        button = QtWidgets.QPushButton("Go to Paris")
        panToParis = functools.partial(self.panMap, 2.3272, 48.8620)
        button.clicked.connect(panToParis)
        vbox.addWidget(button)
示例#7
0
    def setupUi(self, A7S_window):

        #self.setWindowTitle('CRO Road')

        A7S_window.setObjectName("Dialog")
        A7S_window.resize(1200, 1000)
        A7S_window.setMinimumSize(QtCore.QSize(552, 0))

        vbox = QtWidgets.QVBoxLayout()
        self.setLayout(vbox)

        #label = self.label = QtWidgets.QLabel()

        #sp = QtWidgets.QSizePolicy()
        #sp.setVerticalStretch(0)

        #label.setSizePolicy(sp)
        #vbox.addWidget(label)

        view = self.view = QtWebEngineWidgets.QWebEngineView()

        channel = self.channel = QtWebChannel.QWebChannel()

        channel.registerObject("MainWindow", self)
        view.page().setWebChannel(channel)

        file = os.path.join(
            os.path.dirname(os.path.realpath(__file__)),
            "data//html//A7.S.L0.R0.html",
        )

        self.view.setUrl(QtCore.QUrl.fromLocalFile(file))

        vbox.addWidget(view)

        self.centralwidget = QtWidgets.QWidget(A7S_window)
        self.centralwidget.setObjectName("centralwidget")
        #self.centralwidget.setCurrentIndex(2)

        self.back_button = QtWidgets.QPushButton(self.centralwidget)
        self.back_button.setGeometry(QtCore.QRect(0, 0, 50, 30))
        self.back_button.setObjectName("back")
        #self.btn_open.clicked.connect(self.openWindow)

        #        self.label = QtWidgets.QLabel(self.centralwidget)
        #        self.label.setGeometry(QtCore.QRect(110, 30, 371, 41))
        #        font = QtGui.QFont()
        #        font.setPointSize(22)
        #        self.label.setFont(font)
        #        self.label.setObjectName("label")
        #OtherWindow.setCentralWidget(self.centralwidget)

        #        self.statusbar = QtWidgets.QStatusBar(OtherWindow)
        #        self.statusbar.setObjectName("statusbar")
        #        OtherWindow.setStatusBar(self.statusbar)

        self.retranslateUi(A7S_window)
        QtCore.QMetaObject.connectSlotsByName(A7S_window)
示例#8
0
 def load_qwebchannel(self):
     file = QtCore.QFile(":/qtwebchannel/qwebchannel.js")
     if file.open(QtCore.QIODevice.ReadOnly):
         content = file.readAll()
         file.close()
         self.runJavaScript(content.data().decode())
     if self.webChannel() is None:
         channel = QtWebChannel.QWebChannel(self)
         self.setWebChannel(channel)
示例#9
0
    def __init__(self, parent=None):
        super(AppMainWindow, self).__init__(parent)
        self.setupUi(self)
        #backend.pointChanged.connect(self.onPointChanged)
        channel = QtWebChannel.QWebChannel(self)
        channel.registerObject('mainwindow', self)
        self.mapa.page().setWebChannel(channel)

        file = QtCore.QDir.current().absoluteFilePath("index.html")
        self.mapa.load(QtCore.QUrl.fromLocalFile(file))
示例#10
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setZoomFactor(1)

        self.loadFinished.connect(self._load_finished)
        self.loadProgress.connect(self._load_progress)
        self.profile().scripts().insert(self._qwc_script())
        self.channel = QtWebChannel.QWebChannel(self)
        self.setWebChannel(self.channel)
        self.channel.registerObject('page', self)
示例#11
0
 def __init__(self):
     super().__init__()
     self.map_ui = Ui_tmy3page(
     )  # The name of my top level object is MainWindow
     self.map_ui.setupUi(self)
     channel = QtWebChannel.QWebChannel(self.map_ui.html_code.page())
     self.map_ui.html_code.page().setWebChannel(channel)
     channel.registerObject("jshelper", self)
     self.map_ui.html_code.load(
         QtCore.QUrl.fromLocalFile(
             QtCore.QDir.current().filePath("useless.html")))
示例#12
0
 def __init__(self, api_key, parent=None):
     super(QGoogleMap, self).__init__(parent)
     self._api_key = api_key
     channel = QtWebChannel.QWebChannel(self)
     self.page().setWebChannel(channel)
     channel.registerObject("qGoogleMap", self)
     self.page().runJavaScript(JS)
     self._manager = QtNetwork.QNetworkAccessManager(self)
     html = HTML.replace("API_KEY", "AIzaSyCSDgvApmlrnRK2FCab-r_5k6RWgBHBjZs")
     self.initialized = False
     self.setHtml(html)
     self.loadFinished.connect(self.on_loadFinished)
示例#13
0
 def __init__(self):
     super(Surface, self).__init__()
     # 布局
     layout = QtWidgets.QHBoxLayout()
     ui_group_layout = QtWidgets.QVBoxLayout()
     web_group_layout = QtWidgets.QVBoxLayout()
     # 组
     self.ui_group_box = QtWidgets.QGroupBox()
     self.web_group_box = QtWidgets.QGroupBox()
     # 组控件
     self.ui_receive_message = QtWidgets.QLabel('等待网页消息...')
     self.ui_edit_message = QtWidgets.QLineEdit()
     ui_send_button = QtWidgets.QPushButton('发送')
     web_show = QtWebEngineWidgets.QWebEngineView()
     # 组控件加入组布局
     ui_group_layout.addWidget(self.ui_receive_message,
                               alignment=QtCore.Qt.AlignTop)
     ui_group_layout.addWidget(self.ui_edit_message)
     ui_group_layout.addWidget(ui_send_button)
     web_group_layout.addWidget(web_show)
     # 组布局加入组
     self.ui_group_box.setLayout(ui_group_layout)
     self.web_group_box.setLayout(web_group_layout)
     # 组加入总布局
     layout.addWidget(self.ui_group_box)
     layout.addWidget(self.web_group_box)
     # 设置标题
     self.ui_group_box.setTitle('PyQt5界面')
     self.web_group_box.setTitle('Web页面')
     self.setWindowTitle('界面与网页通讯')
     # 控件风格
     self.ui_group_box.setMinimumWidth(400)
     # 加载网页
     current_path = os.getcwd()
     if platform.system() == 'Windows':
         web_show.page().load(QtCore.QUrl('file:///data/web.html'))
     else:
         web_show.page().load(
             QtCore.QUrl('file:///' + current_path + '/data/web.html'))
     self.setLayout(layout)
     # 设置通讯通道传输对象
     self.channel_obj = channel.JSChannel()
     # 网界信息通道
     web_channel = QtWebChannel.QWebChannel(web_show.page())
     # 网页设置通道
     web_show.page().setWebChannel(web_channel)
     # 注册信号传输对象方便在网页中获取
     web_channel.registerObject('messageChannel', self.channel_obj)
     # 通道实例收到信号连接槽函数
     self.channel_obj.receiveMessageFromJS.connect(self.message_from_web)
     # 按钮点击发送消息
     ui_send_button.clicked.connect(self.message_to_web)
示例#14
0
    def initMap(self):
        file = os.path.join(
            os.path.dirname(os.path.realpath(__file__)),
            "map.html",
        )

        self.channel = QtWebChannel.QWebChannel()
        self.channel.registerObject("MainWindow", self)

        self.view.page().setWebChannel(self.channel)
        self.view.setUrl(QtCore.QUrl.fromLocalFile(file))
        self.view.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                QtWidgets.QSizePolicy.Expanding)
示例#15
0
 def __init__(self, parent):
     super(QOSM, self).__init__(parent)
     self.manager = QNetworkAccessManager()
     self.cache = QNetworkDiskCache()
     self.cache.setCacheDirectory("cache")
     self.manager.setCache(self.cache)
     self.channel = QtWebChannel.QWebChannel(self)
     self.channel.registerObject("qOSMap", self)
     self.page().setWebChannel(self.channel)
     with open(path + 'index.html') as f:
         HTML = f.read()
     self.setHtml(HTML)
     self.loadFinished.connect(self.onLoadFinished)
示例#16
0
文件: window.py 项目: ipic/projecao
 def __init__(self, parent=None, screen=None, can_show_startup_screen=True):
     """
     Create the display window
     """
     super(DisplayWindow, self).__init__(parent)
     # Gather all flags for the display window
     flags = QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool | QtCore.Qt.WindowStaysOnTopHint
     if self.settings.value('advanced/x11 bypass wm'):
         flags |= QtCore.Qt.X11BypassWindowManagerHint
     # Need to import this inline to get around a QtWebEngine issue
     from openlp.core.display.webengine import WebEngineView
     self._is_initialised = False
     self._can_show_startup_screen = can_show_startup_screen
     self._fbo = None
     self.setWindowTitle(translate('OpenLP.DisplayWindow', 'Display Window'))
     self.setWindowFlags(flags)
     self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
     self.setAutoFillBackground(True)
     self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
     self.layout = QtWidgets.QVBoxLayout(self)
     self.layout.setContentsMargins(0, 0, 0, 0)
     self.webview = WebEngineView(self)
     self.webview.setAttribute(QtCore.Qt.WA_TranslucentBackground)
     self.webview.page().setBackgroundColor(QtCore.Qt.transparent)
     self.layout.addWidget(self.webview)
     self.webview.loadFinished.connect(self.after_loaded)
     display_base_path = AppLocation.get_directory(AppLocation.AppDir) / 'core' / 'display' / 'html'
     self.display_path = display_base_path / 'display.html'
     self.checkerboard_path = display_base_path / 'checkerboard.png'
     self.openlp_splash_screen_path = display_base_path / 'openlp-splash-screen.png'
     self.set_url(QtCore.QUrl.fromLocalFile(path_to_str(self.display_path)))
     self.channel = QtWebChannel.QWebChannel(self)
     self.media_watcher = MediaWatcher(self)
     self.channel.registerObject('mediaWatcher', self.media_watcher)
     self.display_watcher = DisplayWatcher(self)
     self.channel.registerObject('displayWatcher', self.display_watcher)
     self.webview.page().setWebChannel(self.channel)
     self.display_watcher.initialised.connect(self.on_initialised)
     self.is_display = False
     self.scale = 1
     self.hide_mode = None
     self.__script_done = True
     self.__script_result = None
     if screen and screen.is_display:
         Registry().register_function('live_display_hide', self.hide_display)
         Registry().register_function('live_display_show', self.show_display)
         self.update_from_screen(screen)
         self.is_display = True
         # Only make visible on single monitor setup if setting enabled.
         if len(ScreenList()) > 1 or self.settings.value('core/display on monitor'):
             self.show()
    def __init__(self, api_key, parent=None):
        super(QGoogleMap, self).__init__(parent)
        self._api_key = api_key
        channel = QtWebChannel.QWebChannel(self)
        self.page().setWebChannel(channel)
        channel.registerObject("qGoogleMap", self)
        self.page().runJavaScript(JS)

        html = HTML.replace("API_KEY", "AIzaSyD1VkY2p8-r3zH_wrpMk6xkPWc6dweaThM").replace("CRAZY_CODE", JS)
        self.page().runJavaScript(JS)
        self.setHtml(html)
        self.loadFinished.connect(self.on_loadFinished)
        self.urlChanged.connect(self.on_loadFinished)
        self.initialized = False

        self._manager = QtNetwork.QNetworkAccessManager(self)
示例#18
0
 def __init__(self, parent=None):
     """
     """
     QtWebEngineWidgets.QWebEngineView.__init__(self)
     self.settings().setAttribute(
         QtWebEngineWidgets.QWebEngineSettings.
         LocalContentCanAccessRemoteUrls, True)
     self.page = webMapPage()
     url = QtCore.QUrl.fromLocalFile(
         os.path.abspath('resources/GUI/WebMap/WebMap.html'))
     self.setPage(self.page)
     self.load(url)
     self.channel = QtWebChannel.QWebChannel()
     self.webClass = webClass()
     self.channel.registerObject('webobj', self.webClass)
     self.page.setWebChannel(self.channel)
示例#19
0
    def __init__(self, client, *args, **kwargs):
        QtCore.QObject.__init__(self, *args, **kwargs)
        self.client = client
        logger.debug("Map Vault tab instantiating")

        self._webChannel = QtWebChannel.QWebChannel(self)
        self._webChannel.registerObject("webVault", self)
        self._page = FAFPage(self)
        self._page.setWebChannel(self._webChannel)

        self.ui = QtWebEngineWidgets.QWebEngineView()

        self.ui.setPage(self._page)

        self.loaded = False
        self.ui.loadFinished.connect(self.ui.show)
        self.reloadView()
示例#20
0
    def __init__(self, api_key, parent=None):
        super(QGoogleMap, self).__init__(parent)
        self._api_key = api_key
        channel = QtWebChannel.QWebChannel(self)
        self.page().setWebChannel(channel)
        channel.registerObject("qGoogleMap", self)
        #print(JS)
        #print("run javascript")
        #self.page().runJavaScript(JS)
        #print("run javascript done")

        html = HTML.replace("API_KEY", api_key)
        self.setHtml(html)
        self.loadFinished.connect(self.on_loadFinished)
        self.initialized = False
        self._center = None

        self._manager = QtNetwork.QNetworkAccessManager(self)
示例#21
0
    def attach_to_web_engine_view(self, web_engine_view):
        """
        Attach the labeller to a `QtWebEngineWidgets.QWebEngineView` widget

        :param web_engine_view: A `QtWebEngineWidgets.QWebEngineView` instance that is the widget in which the
            labeller is to be rendered
        """
        # Start the Flask server if its not already running
        self._server.start_flask_server()
        # Create a QWebChannel to communicate with the client-side Javascript code
        channel = QtWebChannel.QWebChannel(web_engine_view.page())
        web_engine_view.page().setWebChannel(channel)
        # Register self as `qt_tool` as the `labeller_control_qt.jinja2` template will attempte to find it here
        channel.registerObject("qt_tool", self)
        # Get the server url
        tool_url = self._server.server_url(tool_id=self._tool_id,
                                           dextr_available=self._dextr_fn
                                           is not None)
        # Have the web view widget navigate there
        web_engine_view.setUrl(QtCore.QUrl(tool_url))
示例#22
0
    def __init__(self, url, parent=None):
        super().__init__(parent)

        self._titles = []

        app = QtWidgets.QApplication(sys.argv)
        self._page = QtWebEngineWidgets.QWebEnginePage(self)

        channel = QtWebChannel.QWebChannel(self)
        self.page.setWebChannel(channel)

        self._view = QtWebEngineWidgets.QWebEngineView()
        self._view.setAttribute(QtCore.Qt.WA_DontShowOnScreen, True)
        self._view.setPage(self.page)
        self._view.resize(1920, 1080)
        self._view.show()

        self.page.loadFinished.connect(self.on_load_finished)

        self.page.load(QtCore.QUrl(url))
        app.exec_()
示例#23
0
文件: viui.py 项目: westvind/vintel
    def __init__(self):
        super(MainWindowPage, self).__init__()
        self.m_pView = QWebEngineView()
        self.m_pView.setPage(self)
        self.channel = QtWebChannel.QWebChannel(self)
        self.bridge = Bridge()
        self.bridge.sig_message.connect(self.page_event)
        self.m_pView.page().setWebChannel(self.channel)
        self.m_pView.page().profile().scripts().insert(
            self.__client_script('jquery-3.1.1.min'))
        self.m_pView.page().profile().scripts().insert(
            self.__client_script('clientscript'))
        # self.m_pView.page().profile().scripts().insert(self.__client_script('firebug-lite'))

        self.m_pView.page().setHtml(self.__client_html())
        self.channel.registerObject('VIntelAPI', self.bridge)

        self.styles = {}
        for stype in 'dark', 'light':
            with open(resource_path(
                    'vi/ui/res/style-{0}.css'.format(stype))) as src_file:
                self.styles['style_' + stype] = src_file.read()

        self.set_style('light')
示例#24
0
文件: bankus.py 项目: onimac92/bankus
    def __init__(self, parent=None):
        super().__init__(parent)
        self.webEngineView = QtWebEngineWidgets.QWebEngineView()
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.resize(650, 610)
        self.setWindowOpacity(0.99)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("favicon.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.setWindowIcon(icon)

        lay = QtWidgets.QVBoxLayout(self)
        lay.setContentsMargins(0, 0, 0, 0)
        lay.addWidget(self.webEngineView)

        backend = Backend(self)
        backend.valueChanged.connect(self.foo_function)

        self.channel = QtWebChannel.QWebChannel()
        self.channel.registerObject("backend", backend)
        self.webEngineView.page().setWebChannel(self.channel)
        path = "http://localhost/index.html"
        self.webEngineView.setUrl(QtCore.QUrl(path))
        self.webEngineView.loadFinished.connect(self._on_load_finished)
示例#25
0
    def initUI(self):

        # MENUBAR
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('File')

        impMenu = QMenu('Export', self)
        impAct = QAction('Export to .gpx (:TODO)', self)
        impMenu.addAction(impAct)

        newAct = QAction('clear journey', self)
        saveAct = QAction('Save Journey', self)
        loadAct = QAction('Load Journey', self)

        newAct.triggered.connect(self.clearJourney)
        saveAct.triggered.connect(self.saveJourney)
        loadAct.triggered.connect(self.loadJourney)

        fileMenu.addAction(newAct)
        fileMenu.addAction(saveAct)
        fileMenu.addAction(loadAct)
        fileMenu.addMenu(impMenu)

        self.statusBar().showMessage('The Journey is the Destination')

        # QTWIDGETS
        self.og = QLineEdit(self)
        self.og.move(50, 150)
        self.og.setText("San Francisco")

        self.dt = QLineEdit(self)
        self.dt.move(50, 200)
        self.dt.setText("Los Angeles")

        self.goButton = QPushButton('Go', self)
        self.goButton.move(50, 250)
        self.goButton.clicked.connect(self.gcTags)

        self.view = QtWebEngineWidgets.QWebEngineView()
        self.view.settings().setAttribute(
            QWebEngineSettings.LocalStorageEnabled, True)
        self.view.setObjectName('MapWidget')

        self.channel = QtWebChannel.QWebChannel(self.view.page())
        self.view.page().setWebChannel(self.channel)
        self.channel.registerObject("jshelper", self)

        homepage = Figure()
        js = JavascriptLink(
            QUrl.fromLocalFile(
                self.htmlPath.absoluteFilePath("qwebchannel.js")).toString())
        homepage.header.add_child(Element(js.render()))

        ####  RUN THIS CODE TO MODIFY THE STARTUP FILE

        ## create a map showing all scenic routes with their description
        ## and a link to their annotations in a popup

        #     self.us = folium.Map(location=[36,-108], zoom_start=4, tiles='StamenWatercolor')
        #
        #     link = JavascriptLink(QUrl.fromLocalFile(self.htmlPath.absoluteFilePath("popup.js")).toString())
        #     for route in self.true.designatedScenicRoutes.values():

        #
        #         # GET SCENIC ROUTES W/ CENTER IN BOUNDS OF fastestRoute
        #         # ll = route['ll']
        #         # #print(float(ll[0]))
        #         # #print(float(ll[1]))
        #
        #             # explore = FlickrRoute.ImageByLatLong(ll[1], ll[0])
        #         paths = route['path']
        #         # rtcolor = int('B22222', base=16) ...Hex()
        #         # explore = FlickrRoute.ImageByLatLong(ll[1], ll[0])
        #         for path in paths:
        #             decodedPath = polyline.decode(path.strip('"'))
        #             desgScenicRoute = folium.PolyLine(decodedPath, weight=3,color='yellow').add_to(self.us)
        #
        #             f = Figure()
        #
        #             f.html.add_child(Element('<div id="startLat">'))
        #             # f.html.add_child(Element(str(decodedPath[0][0])))
        #             f.html.add_child(Element('</div>'))
        #             f.html.add_child(Element('<div id="startLong">'))
        #             # f.html.add_child(Element(str(decodedPath[0][1])))
        #             f.html.add_child(Element('</div>'))
        #             f.html.add_child(Element('<div id="endLat">'))
        #             # f.html.add_child(Element(str(decodedPath[len(decodedPath)-1][0])))
        #             f.html.add_child(Element('</div>'))
        #             f.html.add_child(Element('<div id="endLong">'))
        #             # f.html.add_child(Element(str(decodedPath[len(decodedPath)-1][1])))
        #             f.html.add_child(Element('</div>'))
        #             f.html.add_child(Element('<code id="encodedPath">'))
        #             f.html.add_child(Element('</code>'))
        #             f.html.add_child(Element('<div id="name">'))
        #             f.html.add_child(Element(route['name']))
        #             f.html.add_child(Element('</div>'))
        #             # f.html.add_child(Element('<iframe id = "stv" width="285" height="220" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/streetview?key=AIzaSyDiHmblGevCJUXCkuSmeOR2l9wNErlRTw4&location='))#46.414382,10.013988"></iframe>'))
        #             # f.html.add_child(Element(str(ll[1]).strip()))
        #             # f.html.add_child(Element(','))
        #             # f.html.add_child(Element(str(ll[0]).strip()))
        #             # f.html.add_child(Element('&fov=100"></iframe>'))
        #             f.html.add_child(Element('<button id="MyBtn" hidden="1">Journal Entry</button>'))
        #             f.html.add_child(Element(link.render()))
        #
        #             iframe = branca.element.IFrame(html=f.render(), width=150, height=50)
        #             popup = folium.Popup(iframe, max_width=300)
        #
        #             desgScenicRoute.add_child(popup)
        #
        #
        #     self.us.add_to(homepage)
        #     homepage.save(self.htmlPath.absoluteFilePath("full.html"))

        self.view.load(QtCore.QUrl().fromLocalFile(
            os.path.split(os.path.abspath(__file__))[0] + '/html/full.html'))

        self.labelbox = QWidget()
        self.labelbox.setObjectName('Checkpoints')

        self.startpoint = QLabel(self.labelbox)
        self.endpoint = QLabel(self.labelbox)
        self.checkpoint_01 = QLabel(self.labelbox)
        self.checkpoint_01.setText('Take the scenic route')

        self.notepad = QLineEdit(self)
        self.notepad.setText('Welcome to ruta senika')
        self.notepad.editingFinished.connect(self.mischiefManaged)

        # // LAYOUT

        self.window = QWidget()
        self.window.setObjectName('MainWidget')
        QtCore.QMetaObject.connectSlotsByName(self.window)

        self.layout = QGridLayout()
        self.window.setLayout(self.layout)

        self.layout.addWidget(self.startpoint)
        self.layout.addWidget(self.checkpoint_01)
        self.layout.addWidget(self.notepad)
        self.layout.addWidget(self.endpoint)

        self.layout.addWidget(self.view)

        self.layout.addWidget(self.og)
        self.layout.addWidget(self.dt)
        self.layout.addWidget(self.goButton)

        # Set QWidget as the central layout of the main window
        self.setCentralWidget(self.window)

        self.setGeometry(0, 0, 640, 750)
        self.setWindowTitle('Submenu')

        self.show()
示例#26
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.label = QtWidgets.QLabel('hello')
        self.grid_lay = QtWidgets.QGridLayout()
        self.grid_lay.addWidget(QtWidgets.QLabel('Activity: '), 0, 0)
        self.grid_lay.addWidget(QtWidgets.QLabel('Method: '), 1, 0)
        self.cs = self.window().left_panel.cs_tab.list_widget.name
        self.func_units = bw.calculation_setups[self.cs]['inv']
        self.func_units = [{bw.get_activity(k): v
                            for k, v in fu.items()} for fu in self.func_units]
        self.methods = bw.calculation_setups[self.cs]['ia']
        self.func_unit_cb = QtWidgets.QComboBox()
        self.func_unit_cb.addItems(
            [list(fu.keys())[0].__repr__() for fu in self.func_units])
        self.method_cb = QtWidgets.QComboBox()
        self.method_cb.addItems([m.__repr__() for m in self.methods])
        self.grid_lay.addWidget(self.func_unit_cb, 0, 1)
        self.grid_lay.addWidget(self.method_cb, 1, 1)
        self.reload_pb = QtWidgets.QPushButton('Reload')
        self.reload_pb.clicked.connect(self.new_sankey)
        self.grid_lay.addWidget(self.reload_pb, 2, 0)
        self.close_pb = QtWidgets.QPushButton('Close')
        self.close_pb.clicked.connect(self.switch_to_main)
        self.grid_lay.setColumnStretch(4, 1)
        self.grid_lay.addWidget(self.close_pb, 0, 5)
        self.color_attr_cb = QtWidgets.QComboBox()
        self.color_attr_cb.addItems(['flow', 'location', 'name'])
        self.grid_lay.addWidget(QtWidgets.QLabel('color by: '), 0, 2)
        self.grid_lay.addWidget(self.color_attr_cb, 0, 3)
        self.grid_lay.addWidget(QtWidgets.QLabel('cutoff: '), 1, 2)
        self.cutoff_sb = QtWidgets.QDoubleSpinBox()
        self.cutoff_sb.setRange(0.0, 1.0)
        self.cutoff_sb.setSingleStep(0.001)
        self.cutoff_sb.setDecimals(4)
        self.cutoff_sb.setValue(0.005)
        self.cutoff_sb.setKeyboardTracking(False)
        self.grid_lay.addWidget(self.cutoff_sb, 1, 3)
        self.hlay = QtWidgets.QHBoxLayout()
        self.hlay.addLayout(self.grid_lay)

        # qt js interaction
        self.bridge = Bridge()
        self.bridge.viewer_waiting.connect(self.send_json)
        self.bridge.link_clicked.connect(self.expand_sankey)

        self.channel = QtWebChannel.QWebChannel()
        self.channel.registerObject('bridge', self.bridge)
        self.view = QtWebEngineWidgets.QWebEngineView()
        self.view.page().setWebChannel(self.channel)
        html = os.path.join(os.path.abspath(os.path.dirname(__file__)),
                            'activity-browser-sankey.html')
        self.url = QtCore.QUrl.fromLocalFile(html)
        wait_html = os.path.join(os.path.abspath(os.path.dirname(__file__)),
                                 'spinner.html')
        self.wait_url = QtCore.QUrl.fromLocalFile(wait_html)
        self.view.load(self.wait_url)
        self.vlay = QtWidgets.QVBoxLayout()
        self.vlay.addLayout(self.hlay)
        self.vlay.addWidget(self.view)
        self.setLayout(self.vlay)

        # sankey
        demand_all = dict(collections.ChainMap(*self.func_units))
        self.lca = bw.LCA(demand_all, bw.methods.random())
        self.lca.lci()
        self.lca.lcia()
        self.new_sankey()

        self.func_unit_cb.currentIndexChanged.connect(self.new_sankey)
        self.method_cb.currentIndexChanged.connect(self.new_sankey)
        self.color_attr_cb.currentIndexChanged.connect(self.update_colors)
        self.cutoff_sb.valueChanged.connect(self.new_sankey)

        # connections
        sankeysignals.calculating_gt.connect(self.busy_indicator)
        sankeysignals.initial_sankey_ready.connect(self.draw_sankey)
示例#27
0
    def setupUi(self, MainWindow):
        self.webchannel = QtWebChannel.QWebChannel()

        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1071, 739)
        MainWindow.setMinimumSize(QtCore.QSize(1071, 739))
        MainWindow.setMaximumSize(QtCore.QSize(1071, 739))
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("../../Resources/logo_svg.svg"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)

        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.layoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.layoutWidget.setGeometry(QtCore.QRect(680, 20, 361, 33))
        self.layoutWidget.setObjectName("layoutWidget")

        self.logout_layout = QtWidgets.QHBoxLayout(self.layoutWidget)
        self.logout_layout.setContentsMargins(0, 0, 0, 0)
        self.logout_layout.setObjectName("logout_layout")

        self.lbl_user = QtWidgets.QLabel(self.layoutWidget)
        font = QtGui.QFont()
        font.setFamily("Calibri")
        font.setPointSize(11)
        self.lbl_user.setFont(font)
        self.lbl_user.setText("")
        self.lbl_user.setScaledContents(False)
        self.lbl_user.setAlignment(QtCore.Qt.AlignCenter)
        self.lbl_user.setObjectName("lbl_user")
        self.logout_layout.addWidget(self.lbl_user)
        self.btn_logout = QtWidgets.QPushButton(self.layoutWidget)
        self.btn_logout.setMinimumSize(QtCore.QSize(121, 31))
        self.btn_logout.setMaximumSize(QtCore.QSize(121, 31))
        font = QtGui.QFont()
        font.setFamily("Helvetica")
        font.setPointSize(11)
        self.btn_logout.setFont(font)
        self.btn_logout.setStyleSheet(
            "QPushButton {\n"
            "color: rgb(0, 0, 0);\n"
            "    background-color: rgb(202, 202, 202);\n"
            "border: 1.2px solid #ABABAB;\n"
            "outline: none;}\n"
            "\n"
            "QPushButton:hover{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(171, 171, 171);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "QPushButton:pressed{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(129, 129, 129);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "\n"
            "")
        self.btn_logout.setObjectName("btn_logout")
        self.logout_layout.addWidget(self.btn_logout)
        self.btn_profile = QtWidgets.QPushButton(self.centralwidget)
        self.btn_profile.setGeometry(QtCore.QRect(30, 22, 160, 31))
        self.btn_profile.setMinimumSize(QtCore.QSize(160, 31))
        self.btn_profile.setMaximumSize(QtCore.QSize(160, 31))
        font = QtGui.QFont()
        font.setFamily("Helvetica")
        font.setPointSize(11)
        self.btn_profile.setFont(font)
        self.btn_profile.setStyleSheet(
            "QPushButton {\n"
            "color: rgb(0, 0, 0);\n"
            "    background-color: rgb(202, 202, 202);\n"
            "border: 1.2px solid #ABABAB;\n"
            "outline: none;}\n"
            "\n"
            "QPushButton:hover{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(171, 171, 171);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "QPushButton:pressed{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(129, 129, 129);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "\n"
            "")
        self.btn_profile.setObjectName("btn_profile")
        self.btn_pastOps = QtWidgets.QPushButton(self.centralwidget)
        self.btn_pastOps.setGeometry(QtCore.QRect(210, 22, 160, 31))
        self.btn_pastOps.setMinimumSize(QtCore.QSize(160, 31))
        self.btn_pastOps.setMaximumSize(QtCore.QSize(160, 31))
        font = QtGui.QFont()
        font.setFamily("Helvetica")
        font.setPointSize(11)
        self.btn_pastOps.setFont(font)
        self.btn_pastOps.setStyleSheet(
            "QPushButton {\n"
            "color: rgb(0, 0, 0);\n"
            "    background-color: rgb(202, 202, 202);\n"
            "border: 1.2px solid #ABABAB;\n"
            "outline: none;}\n"
            "\n"
            "QPushButton:hover{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(171, 171, 171);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "QPushButton:pressed{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(129, 129, 129);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "\n"
            "")
        self.btn_pastOps.setObjectName("btn_pastOps")
        self.droneMap = QtWebEngineWidgets.QWebEngineView(self.centralwidget)
        self.droneMap.setGeometry(QtCore.QRect(30, 410, 401, 301))
        self.droneMap.setObjectName("droneMap")
        self.layoutWidget1 = QtWidgets.QWidget(self.centralwidget)
        self.layoutWidget1.setGeometry(QtCore.QRect(450, 460, 162, 181))
        self.layoutWidget1.setObjectName("layoutWidget1")
        self.operations_layout = QtWidgets.QVBoxLayout(self.layoutWidget1)
        self.operations_layout.setContentsMargins(0, 0, 0, 0)
        self.operations_layout.setObjectName("operations_layout")
        self.btn_Launch = QtWidgets.QPushButton(self.layoutWidget1)
        self.btn_Launch.setMinimumSize(QtCore.QSize(160, 31))
        self.btn_Launch.setMaximumSize(QtCore.QSize(160, 31))
        font = QtGui.QFont()
        font.setFamily("Helvetica")
        font.setPointSize(11)
        self.btn_Launch.setFont(font)
        self.btn_Launch.setStyleSheet(
            "QPushButton {\n"
            "color: rgb(0, 0, 0);\n"
            "    background-color: rgb(202, 202, 202);\n"
            "border: 1.2px solid #ABABAB;\n"
            "outline: none;}\n"
            "\n"
            "QPushButton:hover{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(171, 171, 171);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "QPushButton:pressed{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(129, 129, 129);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "\n"
            "")
        self.btn_Launch.setObjectName("btn_Launch")
        self.operations_layout.addWidget(self.btn_Launch)
        self.btn_endOps = QtWidgets.QPushButton(self.layoutWidget1)
        self.btn_endOps.setMinimumSize(QtCore.QSize(160, 31))
        self.btn_endOps.setMaximumSize(QtCore.QSize(160, 31))
        font = QtGui.QFont()
        font.setFamily("Helvetica")
        font.setPointSize(11)
        self.btn_endOps.setFont(font)
        self.btn_endOps.setStyleSheet(
            "QPushButton {\n"
            "color: rgb(0, 0, 0);\n"
            "    background-color: rgb(202, 202, 202);\n"
            "border: 1.2px solid #ABABAB;\n"
            "outline: none;}\n"
            "\n"
            "QPushButton:hover{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(171, 171, 171);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "QPushButton:pressed{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(129, 129, 129);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "\n"
            "")
        self.btn_endOps.setObjectName("btn_endOps")
        self.operations_layout.addWidget(self.btn_endOps)
        self.btn_PDF = QtWidgets.QPushButton(self.layoutWidget1)
        self.btn_PDF.setMinimumSize(QtCore.QSize(160, 31))
        self.btn_PDF.setMaximumSize(QtCore.QSize(160, 31))
        font = QtGui.QFont()
        font.setFamily("Helvetica")
        font.setPointSize(11)
        self.btn_PDF.setFont(font)
        self.btn_PDF.setStyleSheet(
            "QPushButton {\n"
            "color: rgb(0, 0, 0);\n"
            "    background-color: rgb(202, 202, 202);\n"
            "border: 1.2px solid #ABABAB;\n"
            "outline: none;}\n"
            "\n"
            "QPushButton:hover{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(171, 171, 171);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "QPushButton:pressed{\n"
            "color: rgb(255, 255, 255);\n"
            "background-color: rgb(129, 129, 129);\n"
            "outline: none;\n"
            "border: none;\n"
            "}\n"
            "\n"
            "\n"
            "")
        self.btn_PDF.setObjectName("btn_PDF")
        self.operations_layout.addWidget(self.btn_PDF)
        self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.horizontalLayoutWidget.setGeometry(
            QtCore.QRect(619, 410, 421, 301))
        self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(
            self.horizontalLayoutWidget)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.coordinates = QtWidgets.QTextBrowser(self.horizontalLayoutWidget)
        self.coordinates.setObjectName("coordinates")
        self.horizontalLayout.addWidget(self.coordinates)
        self.textBrowser_2 = QtWidgets.QTextBrowser(
            self.horizontalLayoutWidget)
        self.textBrowser_2.setObjectName("textBrowser_2")
        self.horizontalLayout.addWidget(self.textBrowser_2)
        self.horizontalWidget_2 = QtWidgets.QWidget(self.centralwidget)
        self.horizontalWidget_2.setGeometry(QtCore.QRect(180, 80, 651, 331))
        self.horizontalWidget_2.setObjectName("horizontalWidget_2")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(
            self.horizontalWidget_2)
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.drone_stream = QtWidgets.QLabel(self.horizontalWidget_2)
        self.drone_stream.setText("")
        self.drone_stream.setObjectName("drone_stream")
        self.horizontalLayout_2.addWidget(self.drone_stream)
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
    def __init__(self):
        super().__init__()

        self.setObjectName('Main')
        QtCore.QMetaObject.connectSlotsByName(self)

        self.view = QtWebEngineWidgets.QWebEngineView()
        self.view.setObjectName('MapWidget')

        self.window = QWidget()
        self.window.setObjectName('MainWidget')
        self.layout = QGridLayout()
        self.window.setLayout(self.layout)
        self.layout.addWidget(self.view)
        self.setCentralWidget(self.window)

        self.channel = QtWebChannel.QWebChannel(self.view.page())
        self.view.page().setWebChannel(self.channel)
        self.channel.registerObject("jshelper", self)

        self.us = folium.Map(location=[36, 127], zoom_start=7)

        m = folium.Map(location=[36, 127], zoom_start=7)

        # market cluster
        mcg = folium.plugins.MarkerCluster(control=False)
        m.add_child(mcg)

        g1 = folium.plugins.FeatureGroupSubGroup(mcg, 'Pizza Hut')
        m.add_child(g1)
        g2 = folium.plugins.FeatureGroupSubGroup(mcg, 'Pizza School')
        m.add_child(g2)
        g3 = folium.plugins.FeatureGroupSubGroup(mcg, "Domino's")
        m.add_child(g3)
        g5 = folium.plugins.FeatureGroupSubGroup(m, 'K-Means 클러스터')
        m.add_child(g5)

        # insert on the map
        import pandas as pd
        df1 = pd.read_csv("./Data/pizza_hut_address_complete.csv")
        df3 = pd.read_csv("./Data/pizzaschool_populationComplete.csv")
        df2 = pd.read_csv("./Data/dominopizza_complete.csv")
        cluster_df0 = pd.read_csv("./Data/상권cluster별위치.csv")

        import math
        from haversine import haversine

        for n in df1.index:
            folium.Marker([df1['lat'][n], df1['lng'][n]],
                          icon=folium.Icon(color='blue',
                                           icon='info-sign')).add_to(g1)

        for n in df2.index:
            folium.Marker([df2['lat'][n], df2['lng'][n]],
                          icon=folium.Icon(color='red',
                                           icon='info-sign')).add_to(g2)

        for n in df3.index:
            folium.Marker([df3['lat'][n], df3['lng'][n]],
                          icon=folium.Icon(color='orange',
                                           icon='info-sign')).add_to(g3)

        area_list = []
        for n in range(len(cluster_df0)):
            point1 = cluster_df0['max_lat'][n], cluster_df0['max_lng'][n]
            point2 = cluster_df0['min_lat'][n], cluster_df0['min_lng'][n]
            distance = haversine(point1, point2) * 1000
            area_list.append(math.pi * (distance / 2)**2)
            folium.Circle([cluster_df0['lat'][n], cluster_df0['lng'][n]],
                          radius=distance / 2,
                          fill=False,
                          fill_color='#00ff00').add_to(g5)

        folium.LayerControl(collapsed=False).add_to(m)
        m.save(os.path.join('./Data/Plugins_9.html'))
        self.view.load(QtCore.QUrl().fromLocalFile(
            os.path.split(os.path.abspath(__file__))[0] +
            r"./Data/Plugins_9.html"))

        self.setGeometry(100, 100, 1200, 900)
        self.show()
示例#29
0
    def __init__(self):
        QMainWindow.__init__(self, None)
        self.setupUi(self)
        self.sourceDirty = True
        self.highlighter = None
        self.insertHtmlDialog = None
        self.tabWidget.setTabText(0, "Normal View")
        self.tabWidget.setTabText(1, "HTML Source")
        self.tabWidget.currentChanged.connect(self.changeTab)
        self.resize(800, 600)

        self.highlighter = Highlighter(self.plainTextEdit.document())

        spacer = QWidget(self)
        spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)
        self.standardToolBar.insertWidget(self.actionZoomOut, spacer)

        self.zoomLabel = QLabel()
        self.standardToolBar.insertWidget(self.actionZoomOut, self.zoomLabel)

        self.zoomSlider = QSlider(self)
        self.zoomSlider.setOrientation(Qt.Horizontal)
        self.zoomSlider.setMaximumWidth(150)
        self.zoomSlider.setRange(25, 400)
        self.zoomSlider.setSingleStep(25)
        self.zoomSlider.setPageStep(100)
        self.zoomSlider.valueChanged.connect(self.changeZoom)
        self.standardToolBar.insertWidget(self.actionZoomIn, self.zoomSlider)

        self.actionFileNew.triggered.connect(self.fileNew)
        self.actionFileOpen.triggered.connect(self.fileOpen)
        self.actionFileSave.triggered.connect(self.fileSave)
        self.actionFileSaveAs.triggered.connect(self.fileSaveAs)
        self.actionExit.triggered.connect(self.close)
        self.actionInsertImage.triggered.connect(self.insertImage)
        self.actionCreateLink.triggered.connect(self.createLink)
        self.actionInsertHtml.triggered.connect(self.insertHtml)
        self.actionZoomOut.triggered.connect(self.zoomOut)
        self.actionZoomIn.triggered.connect(self.zoomIn)

        # these are forward to internal QWebView
        self._forward_action(self.actionEditUndo,
                             QtWebEngineWidgets.QWebEnginePage.Undo)
        self._forward_action(self.actionEditRedo,
                             QtWebEngineWidgets.QWebEnginePage.Redo)
        self._forward_action(self.actionEditCut,
                             QtWebEngineWidgets.QWebEnginePage.Cut)
        self._forward_action(self.actionEditCopy,
                             QtWebEngineWidgets.QWebEnginePage.Copy)
        self._forward_action(self.actionEditPaste,
                             QtWebEngineWidgets.QWebEnginePage.Paste)
        self._forward_action(self.actionFormatBold,
                             QtWebEngineWidgets.QWebEnginePage.ToggleBold)
        self._forward_action(self.actionFormatItalic,
                             QtWebEngineWidgets.QWebEnginePage.ToggleItalic)
        self._forward_action(self.actionFormatUnderline,
                             QtWebEngineWidgets.QWebEnginePage.ToggleUnderline)

        # Qt 4.5.0 has a bug: always returns 0 for QWebPage::SelectAll
        self.actionEditSelectAll.triggered.connect(self.editSelectAll)

        self.actionStyleParagraph.triggered.connect(self.styleParagraph)
        self.actionStyleHeading1.triggered.connect(self.styleHeading1)
        self.actionStyleHeading2.triggered.connect(self.styleHeading2)
        self.actionStyleHeading3.triggered.connect(self.styleHeading3)
        self.actionStyleHeading4.triggered.connect(self.styleHeading4)
        self.actionStyleHeading5.triggered.connect(self.styleHeading5)
        self.actionStyleHeading6.triggered.connect(self.styleHeading6)
        self.actionStylePreformatted.triggered.connect(self.stylePreformatted)
        self.actionStyleAddress.triggered.connect(self.styleAddress)
        self.actionFormatFontName.triggered.connect(self.formatFontName)
        self.actionFormatFontSize.triggered.connect(self.formatFontSize)
        self.actionFormatTextColor.triggered.connect(self.formatTextColor)
        self.actionFormatBackgroundColor.triggered.connect(
            self.formatBackgroundColor)

        # no page action exists yet for these, so use execCommand trick
        self.actionFormatStrikethrough.triggered.connect(
            self.formatStrikeThrough)
        self.actionFormatAlignLeft.triggered.connect(self.formatAlignLeft)
        self.actionFormatAlignCenter.triggered.connect(self.formatAlignCenter)
        self.actionFormatAlignRight.triggered.connect(self.formatAlignRight)
        self.actionFormatAlignJustify.triggered.connect(
            self.formatAlignJustify)
        self.actionFormatDecreaseIndent.triggered.connect(
            self.formatDecreaseIndent)
        self.actionFormatIncreaseIndent.triggered.connect(
            self.formatIncreaseIndent)
        self.actionFormatNumberedList.triggered.connect(
            self.formatNumberedList)
        self.actionFormatBulletedList.triggered.connect(
            self.formatBulletedList)

        # enable pasting
        self.webView.settings().setAttribute(
            QtWebEngineWidgets.QWebEngineSettings.JavascriptCanAccessClipboard,
            True)
        self.webView.settings().setAttribute(
            QtWebEngineWidgets.QWebEngineSettings.JavascriptCanPaste, True)
        self.webView.page().settings().setAttribute(
            QtWebEngineWidgets.QWebEngineSettings.JavascriptCanAccessClipboard,
            True)
        self.webView.page().settings().setAttribute(
            QtWebEngineWidgets.QWebEngineSettings.JavascriptCanPaste, True)

        # necessary to sync our actions
        self.webView.page().selectionChanged.connect(self.adjustActions)

        self.webView.setFocus()

        self.setCurrentFileName('')

        self.webchannel = QtWebChannel.QWebChannel(self)
        self.webView.page().setWebChannel(self.webchannel)
        self.webchannel.registerObject('MyChannel', self)

        initialFile = str("./src/pyhtmleditor/ui/example.html")
        args = QCoreApplication.arguments()
        if (len(args) == 2):
            initialFile = args[1]

        if not self.load(initialFile):
            self.fileNew()

        self.adjustActions()
        self.adjustSource()
        self.setWindowModified(False)
        self.changeZoom(100)
示例#30
0
    @QtCore.pyqtSlot(QVariant)
    def deleteCategory(self, id):
        print("Delete Category")
        print(id)
        db.delete("categories", [id])


if __name__ == "__main__":
    import os
    import sys

    app = QtWidgets.QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon('note3.ico'))
    backend = Backend()

    view = QtWebEngineWidgets.QWebEngineView()

    channel = QtWebChannel.QWebChannel()
    view.page().setWebChannel(channel)
    channel.registerObject("backend", backend)

    # current_dir = os.path.dirname(os.path.realpath(__file__))
    # filename = os.path.join(current_dir, "index.html")
    # url = QtCore.QUrl.fromLocalFile(filename)
    # view.load(url)
    view.load(QtCore.QUrl("http://localhost:3000/"))

    view.resize(1200, 700)
    view.show()
    sys.exit(app.exec_())