class PythonSelector(QWidget): def __init__(self, btn, parent=None): super().__init__(parent, Qt.FramelessWindowHint | Qt.Popup) self.btn_selector = btn self.setAttribute(Qt.WA_TranslucentBackground) box = QVBoxLayout(self) self.view = QQuickWidget() self.view.setClearColor(Qt.transparent) self.setFixedWidth(400) self.setFixedHeight(200) self.view.setResizeMode(QQuickWidget.SizeRootObjectToView) self.view.setSource(ui_tools.get_qml_resource("PythonChooser.qml")) self._root = self.view.rootObject() box.addWidget(self.view) self._model = [] self._root.pythonSelected.connect(self.set_python_interpreter) def setVisible(self, visible): super().setVisible(visible) self.btn_selector.setChecked(visible) def showEvent(self, event): ide = IDE.get_service("ide") move_to = ide.mapToGlobal(QPoint(0, 0)) move_to -= QPoint( -ide.width() + self.width() - 5, -ide.height() + self.height() + 20) self.move(move_to) self._root.setModel(self._model) super().showEvent(event) def set_python_interpreter(self, path): ide = IDE.get_service("ide") obj = ide.get_interpreter(path) ide.set_interpreter(path) self.btn_selector.setText(obj.display_name) self.btn_selector.setToolTip(obj.path) def add_model(self, interpreters): self._model.clear() model = [] for interpreter in interpreters: model.append([ interpreter.display_name, interpreter.path, interpreter.exec_path ]) self._model = model locator = IDE.get_service("interpreter") self.btn_selector.setText(locator.current.display_name) self.btn_selector.setEnabled(True) def hideEvent(self, event): super().hideEvent(event) self._root.clearModel()
class PythonSelector(QWidget): def __init__(self, btn, parent=None): super().__init__(parent, Qt.FramelessWindowHint | Qt.Popup) self.btn_selector = btn self.setAttribute(Qt.WA_TranslucentBackground) box = QVBoxLayout(self) self.view = QQuickWidget() self.view.setClearColor(Qt.transparent) self.setFixedWidth(400) self.setFixedHeight(200) self.view.setResizeMode(QQuickWidget.SizeRootObjectToView) self.view.setSource(ui_tools.get_qml_resource("PythonChooser.qml")) self._root = self.view.rootObject() box.addWidget(self.view) self._model = [] self._root.pythonSelected.connect(self.set_python_interpreter) def setVisible(self, visible): super().setVisible(visible) self.btn_selector.setChecked(visible) def showEvent(self, event): ide = IDE.get_service("ide") move_to = ide.mapToGlobal(QPoint(0, 0)) move_to -= QPoint(-ide.width() + self.width() - 5, -ide.height() + self.height() + 20) self.move(move_to) self._root.setModel(self._model) super().showEvent(event) def set_python_interpreter(self, path): ide = IDE.get_service("ide") obj = ide.get_interpreter(path) ide.set_interpreter(path) self.btn_selector.setText(obj.display_name) self.btn_selector.setToolTip(obj.path) def add_model(self, interpreters): self._model.clear() model = [] for interpreter in interpreters: model.append([ interpreter.display_name, interpreter.path, interpreter.exec_path ]) self._model = model locator = IDE.get_service("interpreter") self.btn_selector.setText(locator.current.display_name) self.btn_selector.setEnabled(True) def hideEvent(self, event): super().hideEvent(event) self._root.clearModel()
def __init__(self, parent=None): super(MainSelector, self).__init__(parent) self.setAttribute(Qt.WA_TranslucentBackground) self.setAttribute(Qt.WA_ShowWithoutActivating) # Create the QML user interface. view = QQuickWidget() view.setClearColor(Qt.transparent) view.setResizeMode(QQuickWidget.SizeRootObjectToView) view.setSource(ui_tools.get_qml_resource("MainSelector.qml")) self._root = view.rootObject() vbox = QVBoxLayout(self) vbox.setContentsMargins(0, 0, 0, 0) vbox.setSpacing(0) vbox.addWidget(view)
def __init__(self, parent=None): super(Notification, self).__init__(None, Qt.ToolTip) self._parent = parent self._duration = 3000 self.setAttribute(Qt.WA_TranslucentBackground, True) self.setAttribute(Qt.WA_TransparentForMouseEvents) self.setAttribute(Qt.WA_ShowWithoutActivating) self.setFixedHeight(30) # Create the QML user interface. view = QQuickWidget() view.setClearColor(Qt.transparent) view.setResizeMode(QQuickWidget.SizeRootObjectToView) view.setSource(ui_tools.get_qml_resource("Notification.qml")) self._root = view.rootObject() vbox = QVBoxLayout(self) vbox.setContentsMargins(0, 0, 0, 0) vbox.setSpacing(0) vbox.addWidget(view) self._root.close.connect(self.close) self._parent.goingDown.connect(self.close)
def __init__(self, parent=None): super(Notification, self).__init__(None, Qt.ToolTip) self._parent = parent self._duration = 1800 self._text = "" self._running = False self.setAttribute(Qt.WA_TranslucentBackground, True) self.setAttribute(Qt.WA_TransparentForMouseEvents) self.setAttribute(Qt.WA_ShowWithoutActivating) self.setFixedHeight(30) # Create the QML user interface. view = QQuickWidget() view.setClearColor(Qt.transparent) view.setResizeMode(QQuickWidget.SizeRootObjectToView) view.setSource(ui_tools.get_qml_resource("Notification.qml")) self._root = view.rootObject() vbox = QVBoxLayout(self) vbox.setContentsMargins(0, 0, 0, 0) vbox.setSpacing(0) vbox.addWidget(view) self._root.close.connect(self.close) self._parent.goingDown.connect(self.close)
def __init__(self, parent=None): super().__init__(parent, Qt.Dialog | Qt.FramelessWindowHint) self._operations = {'row': False, 'col': True} self.setModal(True) self.setAttribute(Qt.WA_TranslucentBackground) self.setStyleSheet("background:transparent;") self.setFixedHeight(150) self.setFixedWidth(290) # Create the QML user interface. view = QQuickWidget() view.setClearColor(Qt.transparent) view.rootContext().setContextProperty("theme", resources.QML_COLORS) view.setResizeMode(QQuickWidget.SizeRootObjectToView) view.setSource(ui_tools.get_qml_resource("SplitOrientation.qml")) self._root = view.rootObject() vbox = QVBoxLayout(self) vbox.setContentsMargins(0, 0, 0, 0) vbox.setSpacing(0) vbox.addWidget(view) view.setFocusPolicy(Qt.StrongFocus) short_esc = QShortcut(QKeySequence(Qt.Key_Escape), self) short_esc.activated.connect(self.hide) self._root.selected['QString'].connect(self._split_operation)