Make keyboard location based on original window location. Made portable between tkinter and Qt by only changing import

This commit is contained in:
MikeTheWatchGuy 2018-12-08 13:14:13 -05:00
parent 724c457283
commit d7f1266671
1 changed files with 16 additions and 12 deletions

View File

@ -1,29 +1,31 @@
import PySimpleGUI as sg import PySimpleGUI as sg
# import PySimpleGUIQt as sg # 100% portable to Qt by changing to this import
class keyboard(): class keyboard():
def __init__(self, font=('Arial', 16)): def __init__(self, location=(None, None), font=('Arial', 16)):
self.font = font self.font = font
numberRow = '1234567890' numberRow = '1234567890'
topRow = 'QWERTYUIOP' topRow = 'QWERTYUIOP'
midRow = 'ASDFGHJKL' midRow = 'ASDFGHJKL'
bottomRow = 'ZXCVBNM' bottomRow = 'ZXCVBNM'
keyboard_layout = [[sg.Button(c, key=c, pad=(0, 0), size=(4, 2), font=self.font) for c in numberRow] + [ keyboard_layout = [[sg.Button(c, key=c, size=(4, 2), font=self.font) for c in numberRow] + [
sg.Button('', key='back', pad=(0, 0), size=(4, 2), font=self.font), sg.Button('', key='back', size=(4, 2), font=self.font),
sg.Button('Esc', key='close', pad=(0, 0), size=(4, 2), font=self.font)], sg.Button('Esc', key='close', size=(4, 2), font=self.font)],
[sg.T(' ' * 4)] + [sg.Button(c, key=c, pad=(0, 0), size=(4, 2), font=self.font) for c in [sg.T(' ' * 4)] + [sg.Button(c, key=c, size=(4, 2), font=self.font) for c in
topRow], topRow] + [sg.Stretch()],
[sg.T(' ' * 11)] + [sg.Button(c, key=c, pad=(0, 0), size=(4, 2), font=self.font) for c in [sg.T(' ' * 11)] + [sg.Button(c, key=c, size=(4, 2), font=self.font) for c in
midRow], midRow] + [sg.Stretch()],
[sg.T(' ' * 18)] + [sg.Button(c, key=c, pad=(0, 0), size=(4, 2), font=self.font) for c in [sg.T(' ' * 18)] + [sg.Button(c, key=c, size=(4, 2), font=self.font) for c in
bottomRow]] bottomRow] + [sg.Stretch()]]
self.window = sg.Window('keyboard', self.window = sg.Window('keyboard',
grab_anywhere=True, grab_anywhere=True,
keep_on_top=True, keep_on_top=True,
alpha_channel=0, alpha_channel=0,
location=(850,350),
no_titlebar=True, no_titlebar=True,
element_padding=(0,0),
location=location
).Layout(keyboard_layout).Finalize() ).Layout(keyboard_layout).Finalize()
self.hide() self.hide()
@ -75,7 +77,9 @@ class GUI():
grab_anywhere=True, grab_anywhere=True,
no_titlebar=False, no_titlebar=False,
).Layout(layout).Finalize() ).Layout(layout).Finalize()
self.keyboard = keyboard() location = self.mainWindow.CurrentLocation()
location = location[0]-200, location[1]+200
self.keyboard = keyboard(location)
self.focus = None self.focus = None
def run(self): def run(self):