scale keycode buttons relative to text size

main
Jared Beller 2021-01-11 23:27:48 -05:00
parent e4c0f7acdf
commit aa53481d21
No known key found for this signature in database
GPG Key ID: 044B207F4820E3AE
2 changed files with 11 additions and 6 deletions

View File

@ -4,8 +4,7 @@ KEY_WIDTH = 40
KEY_HEIGHT = KEY_WIDTH KEY_HEIGHT = KEY_WIDTH
KEY_SPACING = 4 KEY_SPACING = 4
KEYCODE_BTN_WIDTH = 50 KEYCODE_BTN_RATIO = 3
KEYCODE_BTN_HEIGHT = KEYCODE_BTN_WIDTH
WINDOW_WIDTH, WINDOW_HEIGHT = 1024, 768 WINDOW_WIDTH, WINDOW_HEIGHT = 1024, 768

View File

@ -1,10 +1,10 @@
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
from PyQt5.QtCore import Qt, pyqtSignal from PyQt5.QtCore import Qt, QSize, pyqtSignal
from PyQt5.QtWidgets import QTabWidget, QWidget, QPushButton, QScrollArea, QApplication from PyQt5.QtWidgets import QTabWidget, QWidget, QPushButton, QScrollArea, QApplication
from PyQt5.QtGui import QPalette from PyQt5.QtGui import QPalette
from constants import KEYCODE_BTN_WIDTH, KEYCODE_BTN_HEIGHT from constants import KEYCODE_BTN_RATIO
from flowlayout import FlowLayout from flowlayout import FlowLayout
from keycodes import keycode_tooltip, KEYCODES_BASIC, KEYCODES_ISO, KEYCODES_MACRO, KEYCODES_LAYERS, KEYCODES_QUANTUM, \ from keycodes import keycode_tooltip, KEYCODES_BASIC, KEYCODES_ISO, KEYCODES_MACRO, KEYCODES_LAYERS, KEYCODES_QUANTUM, \
KEYCODES_BACKLIGHT, KEYCODES_MEDIA, KEYCODES_SPECIAL KEYCODES_BACKLIGHT, KEYCODES_MEDIA, KEYCODES_SPECIAL
@ -65,8 +65,7 @@ class TabbedKeycodes(QTabWidget):
buttons = [] buttons = []
for keycode in keycodes: for keycode in keycodes:
btn = QPushButton() btn = KeycodeButton()
btn.setFixedSize(KEYCODE_BTN_WIDTH, KEYCODE_BTN_HEIGHT)
btn.setToolTip(keycode_tooltip(keycode.code)) btn.setToolTip(keycode_tooltip(keycode.code))
btn.clicked.connect(lambda st, k=keycode: self.keycode_changed.emit(k.code)) btn.clicked.connect(lambda st, k=keycode: self.keycode_changed.emit(k.code))
btn.keycode = keycode btn.keycode = keycode
@ -100,3 +99,10 @@ class TabbedKeycodes(QTabWidget):
label = widget.keycode.label label = widget.keycode.label
widget.setStyleSheet("QPushButton {}") widget.setStyleSheet("QPushButton {}")
widget.setText(label.replace("&", "&&")) widget.setText(label.replace("&", "&&"))
class KeycodeButton(QPushButton):
def sizeHint(self):
size = KEYCODE_BTN_RATIO * self.fontMetrics().height()
return QSize(size, size)