/
opt
/
alt
/
python35
/
lib64
/
python3.5
/
idlelib
/
/opt/alt/python35/lib64/python3.5/idlelib
mkdir
upload
Name
Size
Mode
Actions
Icons/
-
0755
rm
idle_test/
-
0755
rm
__pycache__/
-
0755
rm
aboutDialog.py
6987
0644
edit
dl
rm
AutoComplete.py
9201
0644
edit
dl
rm
AutoCompleteWindow.py
17739
0644
edit
dl
rm
AutoExpand.py
3395
0644
edit
dl
rm
Bindings.py
3111
0644
edit
dl
rm
CallTips.py
5932
0644
edit
dl
rm
CallTipWindow.py
6035
0644
edit
dl
rm
ChangeLog
56388
0644
edit
dl
rm
ClassBrowser.py
6999
0644
edit
dl
rm
CodeContext.py
8357
0644
edit
dl
rm
ColorDelegator.py
10598
0644
edit
dl
rm
config-extensions.def
2965
0644
edit
dl
rm
config-highlight.def
2515
0644
edit
dl
rm
config-keys.def
7777
0644
edit
dl
rm
config-main.def
2563
0644
edit
dl
rm
configDialog.py
65061
0644
edit
dl
rm
configHandler.py
32451
0644
edit
dl
rm
configHelpSourceEdit.py
6817
0644
edit
dl
rm
configSectionNameDialog.py
4007
0644
edit
dl
rm
CREDITS.txt
1866
0644
edit
dl
rm
Debugger.py
18758
0644
edit
dl
rm
Delegator.py
1043
0644
edit
dl
rm
dynOptionMenuWidget.py
1990
0644
edit
dl
rm
EditorWindow.py
65595
0644
edit
dl
rm
extend.txt
3642
0644
edit
dl
rm
FileList.py
3813
0644
edit
dl
rm
FormatParagraph.py
7287
0644
edit
dl
rm
GrepDialog.py
5124
0644
edit
dl
rm
help.html
43411
0644
edit
dl
rm
help.py
10952
0644
edit
dl
rm
help.txt
17900
0644
edit
dl
rm
HISTORY.txt
10312
0644
edit
dl
rm
HyperParser.py
12877
0644
edit
dl
rm
idle.py
453
0644
edit
dl
rm
idle.pyw
570
0644
edit
dl
rm
IdleHistory.py
4052
0644
edit
dl
rm
idlever.py
415
0644
edit
dl
rm
IOBinding.py
20599
0644
edit
dl
rm
keybindingDialog.py
12416
0644
edit
dl
rm
macosxSupport.py
8684
0644
edit
dl
rm
MultiCall.py
18571
0644
edit
dl
rm
MultiStatusBar.py
1348
0644
edit
dl
rm
NEWS.txt
15536
0644
edit
dl
rm
NEWS2x.txt
27172
0644
edit
dl
rm
ObjectBrowser.py
3975
0644
edit
dl
rm
OutputWindow.py
4394
0644
edit
dl
rm
ParenMatch.py
6714
0644
edit
dl
rm
PathBrowser.py
3207
0644
edit
dl
rm
Percolator.py
3179
0644
edit
dl
rm
PyParse.py
20461
0644
edit
dl
rm
PyShell.py
58846
0755
edit
dl
rm
README.txt
7891
0644
edit
dl
rm
RemoteDebugger.py
12007
0644
edit
dl
rm
RemoteObjectBrowser.py
964
0644
edit
dl
rm
ReplaceDialog.py
7481
0644
edit
dl
rm
rpc.py
20784
0644
edit
dl
rm
RstripExtension.py
1050
0644
edit
dl
rm
run.py
13869
0644
edit
dl
rm
ScriptBinding.py
8061
0644
edit
dl
rm
ScrolledList.py
4375
0644
edit
dl
rm
SearchDialog.py
3127
0644
edit
dl
rm
SearchDialogBase.py
7009
0644
edit
dl
rm
SearchEngine.py
7485
0644
edit
dl
rm
StackViewer.py
4426
0644
edit
dl
rm
tabbedpages.py
18418
0644
edit
dl
rm
textView.py
3419
0644
edit
dl
rm
TODO.txt
8478
0644
edit
dl
rm
ToolTip.py
3173
0644
edit
dl
rm
TreeWidget.py
15024
0644
edit
dl
rm
UndoDelegator.py
10980
0644
edit
dl
rm
WidgetRedirector.py
6939
0644
edit
dl
rm
WindowList.py
2472
0644
edit
dl
rm
ZoomHeight.py
1300
0644
edit
dl
rm
__init__.py
335
0644
edit
dl
rm
__main__.py
159
0644
edit
dl
rm
Edit:
/opt/alt/python35/lib64/python3.5/idlelib/ToolTip.py
(3173B)
# general purpose 'tooltip' routines - currently unused in idlefork # (although the 'calltips' extension is partly based on this code) # may be useful for some purposes in (or almost in ;) the current project scope # Ideas gleaned from PySol from tkinter import * class ToolTipBase: def __init__(self, button): self.button = button self.tipwindow = None self.id = None self.x = self.y = 0 self._id1 = self.button.bind("<Enter>", self.enter) self._id2 = self.button.bind("<Leave>", self.leave) self._id3 = self.button.bind("<ButtonPress>", self.leave) def enter(self, event=None): self.schedule() def leave(self, event=None): self.unschedule() self.hidetip() def schedule(self): self.unschedule() self.id = self.button.after(1500, self.showtip) def unschedule(self): id = self.id self.id = None if id: self.button.after_cancel(id) def showtip(self): if self.tipwindow: return # The tip window must be completely outside the button; # 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 :-( x = self.button.winfo_rootx() + 20 y = self.button.winfo_rooty() + self.button.winfo_height() + 1 self.tipwindow = tw = Toplevel(self.button) tw.wm_overrideredirect(1) tw.wm_geometry("+%d+%d" % (x, y)) self.showcontents() def showcontents(self, text="Your text here"): # Override this in derived class label = Label(self.tipwindow, text=text, justify=LEFT, background="#ffffe0", relief=SOLID, borderwidth=1) label.pack() def hidetip(self): tw = self.tipwindow self.tipwindow = None if tw: tw.destroy() class ToolTip(ToolTipBase): def __init__(self, button, text): ToolTipBase.__init__(self, button) self.text = text def showcontents(self): ToolTipBase.showcontents(self, self.text) class ListboxToolTip(ToolTipBase): def __init__(self, button, items): ToolTipBase.__init__(self, button) self.items = items def showcontents(self): listbox = Listbox(self.tipwindow, background="#ffffe0") listbox.pack() for item in self.items: listbox.insert(END, item) def _tooltip(parent): root = Tk() root.title("Test tooltip") width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) root.geometry("+%d+%d"%(x, y + 150)) label = Label(root, text="Place your mouse over buttons") label.pack() button1 = Button(root, text="Button 1") button2 = Button(root, text="Button 2") button1.pack() button2.pack() ToolTip(button1, "This is tooltip text for button1.") ListboxToolTip(button2, ["This is","multiple line", "tooltip text","for button2"]) root.mainloop() if __name__ == '__main__': from idlelib.idle_test.htest import run run(_tooltip)
Save
cmd:
run