Linux cpanel.rrshost.in 5.15.0-25-generic #25-Ubuntu SMP Wed Mar 30 15:54:22 UTC 2022 x86_64
Apache
: 109.123.238.221 | : 172.69.214.198
128 Domain
8.2.28
aev999
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
lib /
mysqlsh /
lib /
python3.13 /
idlelib /
[ HOME SHELL ]
Name
Size
Permission
Action
Icons
[ DIR ]
drwxr-xr-x
idle_test
[ DIR ]
drwxr-xr-x
CREDITS.txt
2.1
KB
-rw-r--r--
ChangeLog
55.04
KB
-rw-r--r--
HISTORY.txt
10.07
KB
-rw-r--r--
NEWS2x.txt
26.54
KB
-rw-r--r--
News3.txt
54.67
KB
-rw-r--r--
README.txt
11.38
KB
-rw-r--r--
TODO.txt
8.28
KB
-rw-r--r--
__init__.py
396
B
-rw-r--r--
__main__.py
159
B
-rw-r--r--
autocomplete.py
9.13
KB
-rw-r--r--
autocomplete_w.py
20.37
KB
-rw-r--r--
autoexpand.py
3.14
KB
-rw-r--r--
browser.py
8.39
KB
-rw-r--r--
calltip.py
7.1
KB
-rw-r--r--
calltip_w.py
6.92
KB
-rw-r--r--
codecontext.py
11.15
KB
-rw-r--r--
colorizer.py
14.44
KB
-rw-r--r--
config-extensions.def
2.21
KB
-rw-r--r--
config-highlight.def
2.8
KB
-rw-r--r--
config-keys.def
10.65
KB
-rw-r--r--
config-main.def
3.09
KB
-rw-r--r--
config.py
37.5
KB
-rw-r--r--
config_key.py
14.87
KB
-rw-r--r--
configdialog.py
102.84
KB
-rw-r--r--
debugger.py
20.5
KB
-rw-r--r--
debugger_r.py
11.83
KB
-rw-r--r--
debugobj.py
4.08
KB
-rw-r--r--
debugobj_r.py
1.06
KB
-rw-r--r--
delegator.py
1.02
KB
-rw-r--r--
dynoption.py
1.95
KB
-rw-r--r--
editor.py
67.93
KB
-rw-r--r--
extend.txt
3.55
KB
-rw-r--r--
filelist.py
3.78
KB
-rw-r--r--
format.py
15.41
KB
-rw-r--r--
grep.py
7.34
KB
-rw-r--r--
help.html
76.68
KB
-rw-r--r--
help.py
11.69
KB
-rw-r--r--
help_about.py
8.76
KB
-rw-r--r--
history.py
3.97
KB
-rw-r--r--
hyperparser.py
12.59
KB
-rw-r--r--
idle.bat
177
B
-rw-r--r--
idle.py
454
B
-rw-r--r--
idle.pyw
570
B
-rw-r--r--
iomenu.py
15.78
KB
-rw-r--r--
macosx.py
9.07
KB
-rw-r--r--
mainmenu.py
3.85
KB
-rw-r--r--
multicall.py
18.21
KB
-rw-r--r--
outwin.py
5.57
KB
-rw-r--r--
parenmatch.py
7.04
KB
-rw-r--r--
pathbrowser.py
3.02
KB
-rw-r--r--
percolator.py
3.48
KB
-rw-r--r--
pyparse.py
19.4
KB
-rw-r--r--
pyshell.py
60.76
KB
-rwxr-xr-x
query.py
14.71
KB
-rw-r--r--
redirector.py
6.67
KB
-rw-r--r--
replace.py
9.57
KB
-rw-r--r--
rpc.py
20.58
KB
-rw-r--r--
run.py
21.36
KB
-rw-r--r--
runscript.py
8.08
KB
-rw-r--r--
scrolledlist.py
4.37
KB
-rw-r--r--
search.py
5.44
KB
-rw-r--r--
searchbase.py
7.67
KB
-rw-r--r--
searchengine.py
7.2
KB
-rw-r--r--
sidebar.py
19.85
KB
-rw-r--r--
squeezer.py
12.53
KB
-rw-r--r--
stackviewer.py
3.92
KB
-rw-r--r--
statusbar.py
1.44
KB
-rw-r--r--
textview.py
6.65
KB
-rw-r--r--
tooltip.py
6.51
KB
-rw-r--r--
tree.py
16.1
KB
-rw-r--r--
undo.py
10.76
KB
-rw-r--r--
util.py
1.28
KB
-rw-r--r--
window.py
2.55
KB
-rw-r--r--
zoomheight.py
4.1
KB
-rw-r--r--
zzdummy.py
1.96
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : tooltip.py
"""Tools for displaying tool-tips. This includes: * an abstract base-class for different kinds of tooltips * a simple text-only Tooltip class """ from tkinter import * class TooltipBase: """abstract base class for tooltips""" def __init__(self, anchor_widget): """Create a tooltip. anchor_widget: the widget next to which the tooltip will be shown Note that a widget will only be shown when showtip() is called. """ self.anchor_widget = anchor_widget self.tipwindow = None def __del__(self): self.hidetip() def showtip(self): """display the tooltip""" if self.tipwindow: return self.tipwindow = tw = Toplevel(self.anchor_widget) # show no border on the top level window tw.wm_overrideredirect(1) try: # This command is only needed and available on Tk >= 8.4.0 for OSX. # Without it, call tips intrude on the typing process by grabbing # the focus. tw.tk.call("::tk::unsupported::MacWindowStyle", "style", tw._w, "help", "noActivates") except TclError: pass self.position_window() self.showcontents() self.tipwindow.update_idletasks() # Needed on MacOS -- see #34275. self.tipwindow.lift() # work around bug in Tk 8.5.18+ (issue #24570) def position_window(self): """(re)-set the tooltip's screen position""" x, y = self.get_position() root_x = self.anchor_widget.winfo_rootx() + x root_y = self.anchor_widget.winfo_rooty() + y self.tipwindow.wm_geometry("+%d+%d" % (root_x, root_y)) def get_position(self): """choose a screen position for the tooltip""" # The tip window must be completely outside the anchor widget; # otherwise when the mouse enters the tip window we get # a leave event and it disappears, and then we get an enter # event and it reappears, and so on forever :-( # # Note: This is a simplistic implementation; sub-classes will likely # want to override this. return 20, self.anchor_widget.winfo_height() + 1 def showcontents(self): """content display hook for sub-classes""" # See ToolTip for an example raise NotImplementedError def hidetip(self): """hide the tooltip""" # Note: This is called by __del__, so careful when overriding/extending tw = self.tipwindow self.tipwindow = None if tw: try: tw.destroy() except TclError: # pragma: no cover pass class OnHoverTooltipBase(TooltipBase): """abstract base class for tooltips, with delayed on-hover display""" def __init__(self, anchor_widget, hover_delay=1000): """Create a tooltip with a mouse hover delay. anchor_widget: the widget next to which the tooltip will be shown hover_delay: time to delay before showing the tooltip, in milliseconds Note that a widget will only be shown when showtip() is called, e.g. after hovering over the anchor widget with the mouse for enough time. """ super().__init__(anchor_widget) self.hover_delay = hover_delay self._after_id = None self._id1 = self.anchor_widget.bind("<Enter>", self._show_event) self._id2 = self.anchor_widget.bind("<Leave>", self._hide_event) self._id3 = self.anchor_widget.bind("<Button>", self._hide_event) def __del__(self): try: self.anchor_widget.unbind("<Enter>", self._id1) self.anchor_widget.unbind("<Leave>", self._id2) # pragma: no cover self.anchor_widget.unbind("<Button>", self._id3) # pragma: no cover except TclError: pass super().__del__() def _show_event(self, event=None): """event handler to display the tooltip""" if self.hover_delay: self.schedule() else: self.showtip() def _hide_event(self, event=None): """event handler to hide the tooltip""" self.hidetip() def schedule(self): """schedule the future display of the tooltip""" self.unschedule() self._after_id = self.anchor_widget.after(self.hover_delay, self.showtip) def unschedule(self): """cancel the future display of the tooltip""" after_id = self._after_id self._after_id = None if after_id: self.anchor_widget.after_cancel(after_id) def hidetip(self): """hide the tooltip""" try: self.unschedule() except TclError: # pragma: no cover pass super().hidetip() class Hovertip(OnHoverTooltipBase): "A tooltip that pops up when a mouse hovers over an anchor widget." def __init__(self, anchor_widget, text, hover_delay=1000, foreground="#000000", background="#ffffe0"): """Create a text tooltip with a mouse hover delay. anchor_widget: the widget next to which the tooltip will be shown hover_delay: time to delay before showing the tooltip, in milliseconds Note that a widget will only be shown when showtip() is called, e.g. after hovering over the anchor widget with the mouse for enough time. """ super().__init__(anchor_widget, hover_delay=hover_delay) self.text = text self.foreground = foreground self.background = background def showcontents(self): label = Label(self.tipwindow, text=self.text, justify=LEFT, relief=SOLID, borderwidth=1, foreground=self.foreground, background=self.background) label.pack() def _tooltip(parent): # htest # top = Toplevel(parent) top.title("Test tooltip") x, y = map(int, parent.geometry().split('+')[1:]) top.geometry("+%d+%d" % (x, y + 150)) label = Label(top, text="Place your mouse over buttons") label.pack() button1 = Button(top, text="Button 1 -- 1/2 second hover delay") button1.pack() Hovertip(button1, "This is tooltip text for button1.", hover_delay=500) button2 = Button(top, text="Button 2 -- no hover delay") button2.pack() Hovertip(button2, "This is tooltip\ntext for button2.", hover_delay=None) if __name__ == '__main__': from unittest import main main('idlelib.idle_test.test_tooltip', verbosity=2, exit=False) from idlelib.idle_test.htest import run run(_tooltip)
Close