Changed location of Tooltip to be closer to mouse pointer

This commit is contained in:
MikeTheWatchGuy 2019-05-02 14:27:42 -04:00
parent e9428ae95b
commit f89d4810df
1 changed files with 12 additions and 9 deletions

View File

@ -101,7 +101,7 @@ DEFAULT_DEBUG_WINDOW_SIZE = (80, 20)
DEFAULT_WINDOW_LOCATION = (None, None) DEFAULT_WINDOW_LOCATION = (None, None)
MAX_SCROLLED_TEXT_BOX_HEIGHT = 50 MAX_SCROLLED_TEXT_BOX_HEIGHT = 50
DEFAULT_TOOLTIP_TIME = 400 DEFAULT_TOOLTIP_TIME = 400
DEFAULT_TOOLTIP_OFFSET = (20,-20) DEFAULT_TOOLTIP_OFFSET = (0,-20)
#################### COLOR STUFF #################### #################### COLOR STUFF ####################
BLUES = ("#082567", "#0A37A3", "#00345B") BLUES = ("#082567", "#0A37A3", "#00345B")
PURPLES = ("#480656", "#4F2398", "#380474") PURPLES = ("#480656", "#4F2398", "#380474")
@ -303,6 +303,8 @@ class ToolTip:
self.widget.bind("<ButtonPress>", self.leave) self.widget.bind("<ButtonPress>", self.leave)
def enter(self, event=None): def enter(self, event=None):
self.x = event.x
self.y = event.y
self.schedule() self.schedule()
def leave(self, event=None): def leave(self, event=None):
@ -321,8 +323,8 @@ class ToolTip:
def showtip(self): def showtip(self):
if self.tipwindow: if self.tipwindow:
return return
x = self.widget.winfo_rootx() + DEFAULT_TOOLTIP_OFFSET[0] x = self.widget.winfo_rootx() + self.x + DEFAULT_TOOLTIP_OFFSET[0]
y = self.widget.winfo_rooty() + self.widget.winfo_height() + DEFAULT_TOOLTIP_OFFSET[1] y = self.widget.winfo_rooty() + self.y + DEFAULT_TOOLTIP_OFFSET[1]
self.tipwindow = tk.Toplevel(self.widget) self.tipwindow = tk.Toplevel(self.widget)
self.tipwindow.wm_overrideredirect(True) self.tipwindow.wm_overrideredirect(True)
self.tipwindow.wm_geometry("+%d+%d" % (x, y)) self.tipwindow.wm_geometry("+%d+%d" % (x, y))
@ -5196,6 +5198,7 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
# ------------------------- INPUT element ------------------------- # # ------------------------- INPUT element ------------------------- #
elif element_type == ELEM_TYPE_INPUT_TEXT: elif element_type == ELEM_TYPE_INPUT_TEXT:
element = element # type: InputText
default_text = element.DefaultText default_text = element.DefaultText
element.TKStringVar = tk.StringVar() element.TKStringVar = tk.StringVar()
element.TKStringVar.set(default_text) element.TKStringVar.set(default_text)
@ -7674,7 +7677,7 @@ def main():
frame3 = [ frame3 = [
[Checkbox('Checkbox1', True), Checkbox('Checkbox1')], [Checkbox('Checkbox1', True), Checkbox('Checkbox1')],
[Radio('Radio Button1', 1), Radio('Radio Button2', 1, default=True)], [Radio('Radio Button1', 1), Radio('Radio Button2', 1, default=True, tooltip='Radio 2')],
[T('', size=(1, 4))], [T('', size=(1, 4))],
] ]
@ -7699,12 +7702,12 @@ def main():
[graph_elem], [graph_elem],
] ]
tab1 = Tab('Graph Number 1', frame6) tab1 = Tab('Graph Number 1', frame6, tooltip='tab 1')
tab2 = Tab('Graph Number 2', [[]]) tab2 = Tab('Graph Number 2', [[]])
layout1 = [ layout1 = [
[Menu(menu_def)], [Menu(menu_def)],
[Text('You are running the PySimpleGUI.py file itself', font='ANY 15')], [Text('You are running the PySimpleGUI.py file itself', font='ANY 15', tooltip='My tooltip')],
[Text('You should be importing it rather than running it', font='ANY 15')], [Text('You should be importing it rather than running it', font='ANY 15')],
[Frame('Input Text Group', frame1, title_color='red'), [Frame('Input Text Group', frame1, title_color='red'),
Image(data=DEFAULT_BASE64_LOADING_GIF, key='_IMAGE_')], Image(data=DEFAULT_BASE64_LOADING_GIF, key='_IMAGE_')],
@ -7714,15 +7717,15 @@ def main():
[Frame('Structured Data Group', frame5, title_color='red'), ], [Frame('Structured Data Group', frame5, title_color='red'), ],
# [Frame('Graphing Group', frame6)], # [Frame('Graphing Group', frame6)],
[TabGroup([[tab1, tab2]])], [TabGroup([[tab1, tab2]])],
[ProgressBar(max_value=800, size=(60, 25), key='+PROGRESS+'), Button('Button'), Button('Exit')], [ProgressBar(max_value=800, size=(60, 25), key='+PROGRESS+'), Button('Button'), Button('Exit', tooltip='Exit button')],
] ]
layout=[[Column(layout1)]] layout=[[Column(layout1)]]
window = Window('Window Title', window = Window('Window Title', layout,
font=('Helvetica', 13), font=('Helvetica', 13),
right_click_menu=['&Right', ['Right', '!&Click', '&Menu', 'E&xit', 'Properties']], right_click_menu=['&Right', ['Right', '!&Click', '&Menu', 'E&xit', 'Properties']],
).Layout(layout).Finalize() ).Finalize()
graph_elem.DrawCircle((200, 200), 50, 'blue') graph_elem.DrawCircle((200, 200), 50, 'blue')
i = 0 i = 0
while True: # Event Loop while True: # Event Loop