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()
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
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)
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)
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)
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)
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)
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))
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)
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")))
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)
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)
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)
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)
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)
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)
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()
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)
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))
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_()
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')
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)
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()
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)
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()
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)
@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_())