def tooltip(msg, period=3000, parent=None): global _tooltipTimer, _tooltipLabel class CustomLabel(QLabel): silentlyClose = True def mousePressEvent(self, evt): evt.accept() self.hide() closeTooltip() aw = parent or aqt.mw.app.activeWindow() or aqt.mw lab = CustomLabel("""\ <table cellpadding=10> <tr> <td>%s</td> </tr> </table>""" % msg, aw) lab.setFrameStyle(QFrame.Panel) lab.setLineWidth(2) lab.setWindowFlags(Qt.ToolTip) p = QPalette() p.setColor(QPalette.Window, QColor("#feffc4")) p.setColor(QPalette.WindowText, QColor("#000000")) lab.setPalette(p) lab.move( aw.mapToGlobal(QPoint(0, -100 + aw.height()))) lab.show() _tooltipTimer = aqt.mw.progress.timer( period, closeTooltip, False, requiresCollection=False) _tooltipLabel = lab
def __init__( self, text: str, settings: NotificationSettings = NotificationSettings(), parent: Optional[QWidget] = None, **kwargs, ): super().__init__(text, parent=parent, **kwargs) self._settings = settings self.setFrameStyle(QFrame.Shape.Panel) self.setLineWidth(2) self.setWindowFlags(Qt.WindowType.ToolTip) self.setContentsMargins(10, 10, 10, 10) palette = QPalette() palette.setColor(QPalette.ColorRole.Window, QColor(self._settings.bg_color)) palette.setColor(QPalette.ColorRole.WindowText, QColor(self._settings.fg_color)) self.setPalette(palette) if parent and self._settings.focus_behavior != FocusBehavior.always_on_top: app: "AnkiApp" = QApplication.instance( ) # type: ignore[assignment] app.focusChanged.connect(self._on_app_focus_changed)
def _apply_palette(self, app: QApplication) -> None: if not self.night_mode: return if not self.macos_dark_mode(): app.setStyle(QStyleFactory.create("fusion")) # type: ignore palette = QPalette() text_fg = self.qcolor(colors.TEXT_FG) palette.setColor(QPalette.WindowText, text_fg) palette.setColor(QPalette.ToolTipText, text_fg) palette.setColor(QPalette.Text, text_fg) palette.setColor(QPalette.ButtonText, text_fg) hlbg = self.qcolor(colors.HIGHLIGHT_BG) hlbg.setAlpha(64) palette.setColor(QPalette.HighlightedText, self.qcolor(colors.HIGHLIGHT_FG)) palette.setColor(QPalette.Highlight, hlbg) window_bg = self.qcolor(colors.WINDOW_BG) palette.setColor(QPalette.Window, window_bg) palette.setColor(QPalette.AlternateBase, window_bg) palette.setColor(QPalette.Button, QColor("#454545")) frame_bg = self.qcolor(colors.FRAME_BG) palette.setColor(QPalette.Base, frame_bg) palette.setColor(QPalette.ToolTipBase, frame_bg) disabled_color = self.qcolor(colors.DISABLED) palette.setColor(QPalette.Disabled, QPalette.Text, disabled_color) palette.setColor(QPalette.Disabled, QPalette.ButtonText, disabled_color) palette.setColor(QPalette.Disabled, QPalette.HighlightedText, disabled_color) palette.setColor(QPalette.Link, self.qcolor(colors.LINK)) palette.setColor(QPalette.BrightText, Qt.red) app.setPalette(palette)
def _apply_palette(self, app: QApplication) -> None: if not self.night_mode: return if not self.macos_dark_mode(): app.setStyle(QStyleFactory.create("fusion")) # type: ignore palette = QPalette() text_fg = self.qcolor("text-fg") palette.setColor(QPalette.WindowText, text_fg) palette.setColor(QPalette.ToolTipText, text_fg) palette.setColor(QPalette.Text, text_fg) palette.setColor(QPalette.ButtonText, text_fg) hlbg = self.qcolor("highlight-bg") hlbg.setAlpha(64) palette.setColor(QPalette.HighlightedText, self.qcolor("highlight-fg")) palette.setColor(QPalette.Highlight, hlbg) window_bg = self.qcolor("window-bg") palette.setColor(QPalette.Window, window_bg) palette.setColor(QPalette.AlternateBase, window_bg) palette.setColor(QPalette.Button, QColor(colors.get("fusion-button-base-bg"))) frame_bg = self.qcolor("frame-bg") palette.setColor(QPalette.Base, frame_bg) palette.setColor(QPalette.ToolTipBase, frame_bg) disabled_color = self.qcolor("disabled") palette.setColor(QPalette.Disabled, QPalette.Text, disabled_color) palette.setColor(QPalette.Disabled, QPalette.ButtonText, disabled_color) palette.setColor(QPalette.Disabled, QPalette.HighlightedText, disabled_color) palette.setColor(QPalette.Link, self.qcolor("link")) palette.setColor(QPalette.BrightText, Qt.red) app.setPalette(palette)