Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /opt/alt/python33/lib64/python3.3/idlelib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python33/lib64/python3.3/idlelib/configHelpSourceEdit.py
"Dialog to specify or edit the parameters for a user configured help source."

import os
import sys

from tkinter import *
import tkinter.messagebox as tkMessageBox
import tkinter.filedialog as tkFileDialog

class GetHelpSourceDialog(Toplevel):
    def __init__(self, parent, title, menuItem='', filePath=''):
        """Get menu entry and url/ local file location for Additional Help

        User selects a name for the Help resource and provides a web url
        or a local file as its source.  The user can enter a url or browse
        for the file.

        """
        Toplevel.__init__(self, parent)
        self.configure(borderwidth=5)
        self.resizable(height=FALSE, width=FALSE)
        self.title(title)
        self.transient(parent)
        self.grab_set()
        self.protocol("WM_DELETE_WINDOW", self.Cancel)
        self.parent = parent
        self.result = None
        self.CreateWidgets()
        self.menu.set(menuItem)
        self.path.set(filePath)
        self.withdraw() #hide while setting geometry
        #needs to be done here so that the winfo_reqwidth is valid
        self.update_idletasks()
        #centre dialog over parent:
        self.geometry("+%d+%d" %
                      ((parent.winfo_rootx() + ((parent.winfo_width()/2)
                                                -(self.winfo_reqwidth()/2)),
                        parent.winfo_rooty() + ((parent.winfo_height()/2)
                                                -(self.winfo_reqheight()/2)))))
        self.deiconify() #geometry set, unhide
        self.bind('<Return>', self.Ok)
        self.wait_window()

    def CreateWidgets(self):
        self.menu = StringVar(self)
        self.path = StringVar(self)
        self.fontSize = StringVar(self)
        self.frameMain = Frame(self, borderwidth=2, relief=GROOVE)
        self.frameMain.pack(side=TOP, expand=TRUE, fill=BOTH)
        labelMenu = Label(self.frameMain, anchor=W, justify=LEFT,
                          text='Menu Item:')
        self.entryMenu = Entry(self.frameMain, textvariable=self.menu,
                               width=30)
        self.entryMenu.focus_set()
        labelPath = Label(self.frameMain, anchor=W, justify=LEFT,
                          text='Help File Path: Enter URL or browse for file')
        self.entryPath = Entry(self.frameMain, textvariable=self.path,
                               width=40)
        self.entryMenu.focus_set()
        labelMenu.pack(anchor=W, padx=5, pady=3)
        self.entryMenu.pack(anchor=W, padx=5, pady=3)
        labelPath.pack(anchor=W, padx=5, pady=3)
        self.entryPath.pack(anchor=W, padx=5, pady=3)
        browseButton = Button(self.frameMain, text='Browse', width=8,
                              command=self.browseFile)
        browseButton.pack(pady=3)
        frameButtons = Frame(self)
        frameButtons.pack(side=BOTTOM, fill=X)
        self.buttonOk = Button(frameButtons, text='OK',
                               width=8, default=ACTIVE,  command=self.Ok)
        self.buttonOk.grid(row=0, column=0, padx=5,pady=5)
        self.buttonCancel = Button(frameButtons, text='Cancel',
                                   width=8, command=self.Cancel)
        self.buttonCancel.grid(row=0, column=1, padx=5, pady=5)

    def browseFile(self):
        filetypes = [
            ("HTML Files", "*.htm *.html", "TEXT"),
            ("PDF Files", "*.pdf", "TEXT"),
            ("Windows Help Files", "*.chm"),
            ("Text Files", "*.txt", "TEXT"),
            ("All Files", "*")]
        path = self.path.get()
        if path:
            dir, base = os.path.split(path)
        else:
            base = None
            if sys.platform[:3] == 'win':
                dir = os.path.join(os.path.dirname(sys.executable), 'Doc')
                if not os.path.isdir(dir):
                    dir = os.getcwd()
            else:
                dir = os.getcwd()
        opendialog = tkFileDialog.Open(parent=self, filetypes=filetypes)
        file = opendialog.show(initialdir=dir, initialfile=base)
        if file:
            self.path.set(file)

    def MenuOk(self):
        "Simple validity check for a sensible menu item name"
        menuOk = True
        menu = self.menu.get()
        menu.strip()
        if not menu:
            tkMessageBox.showerror(title='Menu Item Error',
                                   message='No menu item specified',
                                   parent=self)
            self.entryMenu.focus_set()
            menuOk = False
        elif len(menu) > 30:
            tkMessageBox.showerror(title='Menu Item Error',
                                   message='Menu item too long:'
                                           '\nLimit 30 characters.',
                                   parent=self)
            self.entryMenu.focus_set()
            menuOk = False
        return menuOk

    def PathOk(self):
        "Simple validity check for menu file path"
        pathOk = True
        path = self.path.get()
        path.strip()
        if not path: #no path specified
            tkMessageBox.showerror(title='File Path Error',
                                   message='No help file path specified.',
                                   parent=self)
            self.entryPath.focus_set()
            pathOk = False
        elif path.startswith(('www.', 'http')):
            pass
        else:
            if path[:5] == 'file:':
                path = path[5:]
            if not os.path.exists(path):
                tkMessageBox.showerror(title='File Path Error',
                                       message='Help file path does not exist.',
                                       parent=self)
                self.entryPath.focus_set()
                pathOk = False
        return pathOk

    def Ok(self, event=None):
        if self.MenuOk() and self.PathOk():
            self.result = (self.menu.get().strip(),
                           self.path.get().strip())
            if sys.platform == 'darwin':
                path = self.result[1]
                if path.startswith(('www', 'file:', 'http:')):
                    pass
                else:
                    # Mac Safari insists on using the URI form for local files
                    self.result = list(self.result)
                    self.result[1] = "file://" + path
            self.destroy()

    def Cancel(self, event=None):
        self.result = None
        self.destroy()

if __name__ == '__main__':
    #test the dialog
    root = Tk()
    def run():
        keySeq = ''
        dlg = GetHelpSourceDialog(root, 'Get Help Source')
        print(dlg.result)
    Button(root,text='Dialog', command=run).pack()
    root.mainloop()
Name
Size
Permissions
Options
Icons
--
drwxr-xr-x
__pycache__
--
drwxr-xr-x
idle_test
--
drwxr-xr-x
AutoComplete.py
8.869 KB
-rw-r--r--
AutoCompleteWindow.py
17.258 KB
-rw-r--r--
AutoExpand.py
2.425 KB
-rw-r--r--
Bindings.py
3.354 KB
-rw-r--r--
CREDITS.txt
1.821 KB
-rw-r--r--
CallTipWindow.py
5.761 KB
-rw-r--r--
CallTips.py
5.793 KB
-rw-r--r--
ChangeLog
55.071 KB
-rw-r--r--
ClassBrowser.py
6.222 KB
-rw-r--r--
CodeContext.py
8.157 KB
-rw-r--r--
ColorDelegator.py
10.222 KB
-rw-r--r--
Debugger.py
15.983 KB
-rw-r--r--
Delegator.py
0.649 KB
-rw-r--r--
EditorWindow.py
64.753 KB
-rw-r--r--
FileList.py
3.725 KB
-rw-r--r--
FormatParagraph.py
6.998 KB
-rw-r--r--
GrepDialog.py
4.015 KB
-rw-r--r--
HISTORY.txt
10.075 KB
-rw-r--r--
HyperParser.py
10.314 KB
-rw-r--r--
IOBinding.py
19.396 KB
-rw-r--r--
IdleHistory.py
4.021 KB
-rw-r--r--
MultiCall.py
17.118 KB
-rw-r--r--
MultiStatusBar.py
0.765 KB
-rw-r--r--
NEWS.txt
33.61 KB
-rw-r--r--
ObjectBrowser.py
3.661 KB
-rw-r--r--
OutputWindow.py
4.291 KB
-rw-r--r--
ParenMatch.py
6.472 KB
-rw-r--r--
PathBrowser.py
2.811 KB
-rw-r--r--
Percolator.py
2.596 KB
-rw-r--r--
PyParse.py
18.959 KB
-rw-r--r--
PyShell.py
56.521 KB
-rwxr-xr-x
README.txt
2.443 KB
-rw-r--r--
RemoteDebugger.py
11.747 KB
-rw-r--r--
RemoteObjectBrowser.py
0.941 KB
-rw-r--r--
ReplaceDialog.py
5.692 KB
-rw-r--r--
RstripExtension.py
1.025 KB
-rw-r--r--
ScriptBinding.py
7.88 KB
-rw-r--r--
ScrolledList.py
3.903 KB
-rw-r--r--
SearchDialog.py
1.969 KB
-rw-r--r--
SearchDialogBase.py
5.063 KB
-rw-r--r--
SearchEngine.py
7.367 KB
-rw-r--r--
StackViewer.py
3.483 KB
-rw-r--r--
TODO.txt
8.279 KB
-rw-r--r--
ToolTip.py
2.672 KB
-rw-r--r--
TreeWidget.py
14.863 KB
-rw-r--r--
UndoDelegator.py
10.063 KB
-rw-r--r--
WidgetRedirector.py
4.372 KB
-rw-r--r--
WindowList.py
2.414 KB
-rw-r--r--
ZoomHeight.py
1.276 KB
-rw-r--r--
__init__.py
0.036 KB
-rw-r--r--
__main__.py
0.106 KB
-rw-r--r--
aboutDialog.py
6.421 KB
-rw-r--r--
config-extensions.def
2.723 KB
-rw-r--r--
config-highlight.def
1.699 KB
-rw-r--r--
config-keys.def
7.348 KB
-rw-r--r--
config-main.def
2.455 KB
-rw-r--r--
configDialog.py
51.611 KB
-rw-r--r--
configHandler.py
28.636 KB
-rw-r--r--
configHelpSourceEdit.py
6.567 KB
-rw-r--r--
configSectionNameDialog.py
4.213 KB
-rw-r--r--
dynOptionMenuWidget.py
1.277 KB
-rw-r--r--
extend.txt
3.557 KB
-rw-r--r--
help.txt
11.713 KB
-rw-r--r--
idle.py
0.391 KB
-rw-r--r--
idle.pyw
0.655 KB
-rw-r--r--
idlever.py
0.022 KB
-rw-r--r--
keybindingDialog.py
12.136 KB
-rw-r--r--
macosxSupport.py
7.004 KB
-rw-r--r--
rpc.py
20.462 KB
-rw-r--r--
run.py
13.373 KB
-rw-r--r--
tabbedpages.py
17.741 KB
-rw-r--r--
textView.py
3.462 KB
-rw-r--r--