class Window(QWidget): def __init__(self, parent=None): super().__init__(parent) self.setupTrayIcon() self.setIcon() self.trayIcon.show() self.setupView() self.view.load(QUrl(config.WX_URL)) self.view.setZoomFactor(self.physicalDpiX() * 0.008) self.setupLayout() QNetworkProxy.setApplicationProxy(proxy) def setupView(self): self.view = View(self) self.populateJavaScript() def setupLayout(self): layout = QVBoxLayout(self) layout.addWidget(self.view) def showFront(self): self.setWindowState(self.windowState() & ~Qt.WindowMinimized) self.activateWindow() self.show() def quitApp(self): QApplication.instance().quit() def setupTrayIcon(self): self.trayIcon = TrayIcon(self) self.trayIcon.setup(self.showFront, self.quitApp) def setIcon(self): icon = QIcon(config.icon_path) self.trayIcon.setIcon(icon) self.setWindowIcon(icon) def populateJavaScript(self): with open(config.inject_js_path, "r") as f: injectJS = f.read() self.view.page().runJavaScript(injectJS)
class Window(QWidget): def __init__(self, dbg=False): super(Window, self).__init__() self.view = View(self) s = QShortcut(self) s.setKey(Qt.Key_Tab) s.activated.connect(self.tabKeyPressed) self.splitter = QSplitter(self) self.splitter.setOrientation(Qt.Vertical) layout = QVBoxLayout(self) layout.setMargin(0) layout.addWidget(self.splitter) self.splitter.addWidget(self.view) if dbg: self.setupInspector() self.splitter.addWidget(self.inspector) else: self.view.mouseDoubleClickEvent = lambda e: e.ignore() self.view.mouseMoveEvent = lambda e: e.ignore() self.view.mousePressEvent = lambda e: e.ignore() self.view.mouseReleaseEvent = lambda e: e.ignore() self.view.wheelEvent = lambda e: e.ignore() self.view.setContextMenuPolicy(Qt.NoContextMenu) def tabKeyPressed(self): e = QKeyEvent(QEvent.KeyPress, Qt.Key_Tab, Qt.NoModifier) self.view.keyReleaseEvent(e) def setupInspector(self): page = self.view.page() page.settings().setAttribute(QWebSettings.DeveloperExtrasEnabled, True) self.inspector = QWebInspector(self) self.inspector.setPage(page) shortcut = QShortcut(self) shortcut.setKey(Qt.Key_F12) shortcut.activated.connect(self.toggleInspector) self.inspector.setVisible(False) def toggleInspector(self): self.inspector.setVisible(not self.inspector.isVisible()) def closeEvent(self, event): App.backend.evalJS('ui.saveState()') pass