chore(virtual_keyboard): move styles to style.py

Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
2025-10-09 15:05:10 +05:00
committed by Boris Yumankulov
parent b1a804811e
commit 692e11b21d
3 changed files with 62 additions and 36 deletions

View File

@@ -210,8 +210,7 @@ class MainWindow(QMainWindow):
self.restore_state()
self.keyboard = VirtualKeyboard(self)
mainLayout.addWidget(self.keyboard)
self.keyboard = VirtualKeyboard(self, self.theme)
self.detail_animations = DetailPageAnimations(self, self.theme)
QTimer.singleShot(0, self.loadGames)

View File

@@ -217,6 +217,56 @@ CONTEXT_MENU_STYLE = f"""
}}
"""
VIRTUAL_KEYBOARD_STYLE = """
VirtualKeyboard {
background-color: rgba(30, 30, 30, 200);
border-radius: 0px;
border: none;
}
QPushButton {
font-size: 14px;
border: 1px solid #555;
border-top-color: #666;
border-left-color: #666;
border-radius: 3px;
min-width: 30px;
min-height: 30px;
padding: 4px;
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #505050, stop:1 #404040);
color: #e0e0e0;
}
QPushButton:hover {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #606060, stop:1 #505050);
border: 1px solid #666;
border-top-color: #777;
border-left-color: #777;
}
QPushButton:focus {
border: 2px solid #4a90e2;
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #5a5a5a, stop:1 #454545);
}
QPushButton:pressed {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #3a3a3a, stop:1 #303030);
border: 1px solid #444;
border-bottom-color: #555;
border-right-color: #555;
padding-top: 5px;
padding-bottom: 3px;
padding-left: 5px;
padding-right: 3px;
}
QPushButton[checked="true"] {
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #4a90e2, stop:1 #3a7ad2);
color: white;
border: 1px solid #2a6ac2;
border-top-color: #5aa0f2;
border-left-color: #5aa0f2;
}
QPushButton[checked="true"]:focus {
border: 2px solid #6aa3f5;
}
"""
# ГЛОБАЛЬНЫЙ СТИЛЬ ДЛЯ ОКНА (ФОН), ЛЭЙБЛОВ, КНОПОК
MAIN_WINDOW_STYLE = f"""
QWidget {{

View File

@@ -2,15 +2,20 @@ from typing import cast
from PySide6.QtWidgets import (QFrame, QVBoxLayout, QPushButton, QGridLayout,
QSizePolicy, QWidget, QLineEdit)
from PySide6.QtCore import Qt, Signal, QProcess
from portprotonqt.keyboard_layouts import keyboard_layouts # Импортируем раскладки
from portprotonqt.keyboard_layouts import keyboard_layouts
from portprotonqt.theme_manager import ThemeManager
from portprotonqt.config_utils import read_theme_from_config
theme_manager = ThemeManager()
class VirtualKeyboard(QFrame):
keyPressed = Signal(str)
def __init__(self, parent: QWidget | None = None):
def __init__(self, parent: QWidget | None = None, theme=None):
super().__init__(parent)
self._parent: QWidget | None = parent
self.available_layouts: list[str] = self.get_layouts_setxkbmap()
self.theme = theme if theme else theme_manager.apply_theme(read_theme_from_config())
if not self.available_layouts:
self.available_layouts.append('en')
self.current_layout: str = self.available_layouts[0]
@@ -32,33 +37,7 @@ class VirtualKeyboard(QFrame):
self.initUI()
self.hide()
self.setStyleSheet("""
VirtualKeyboard {
background-color: rgba(0, 0, 0, 200); /* Полупрозрачный серый */
border-radius: 5px;
border: 1px solid #ccc;
}
QPushButton {
font-size: 14px;
border: 1px solid #888;
border-radius: 3px;
min-width: 30px;
min-height: 30px;
padding: 0px;
}
QPushButton:pressed {
background-color: #d0d0d0;
}
QPushButton[checked="true"] {
background-color: #a0c4ff;
border: 1px solid #4a90e2;
}
QPushButton[checked="true"] {
background-color: #4a90e2;
color: white;
border: 2px solid #1a73e8;
}
""")
self.setStyleSheet(self.theme.VIRTUAL_KEYBOARD_STYLE)
def highlight_cursor_position(self):
"""Подсвечиваем текущую позицию курсора"""
@@ -74,20 +53,18 @@ class VirtualKeyboard(QFrame):
layout.setSpacing(0)
self.keyboard_layout = QGridLayout()
self.keyboard_layout.setSpacing(1)
self.keyboard_layout.setContentsMargins(0, 0, 0, 0)
self.keyboard_layout.setSpacing(4)
self.keyboard_layout.setContentsMargins(5, 5, 5, 5)
self.create_keyboard()
keyboard_container = QWidget()
keyboard_container.setLayout(self.keyboard_layout)
# keyboard_container.setFixedSize(660, 220)
keyboard_container.setMinimumWidth(574)
keyboard_container.setMinimumHeight(220)
keyboard_container.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
layout.addWidget(keyboard_container, 0, Qt.AlignmentFlag.AlignHCenter)
self.setLayout(layout)
# self.setMinimumHeight(240)
self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
def run_shell_command(self, cmd: str) -> str | None:
@@ -471,7 +448,7 @@ class VirtualKeyboard(QFrame):
"""Активирует текущую выделенную кнопку на клавиатуре"""
focused = self.focusWidget()
if isinstance(focused, QPushButton):
focused.click()
focused.animateClick()
def focusNextKey(self, direction: str):
"""Перемещает фокус на следующую кнопку в указанном направлении"""