Clickable hyperlinks

Terry Reedy tjreedy at
Thu Jan 5 01:17:37 EST 2017

On 1/5/2017 12:11 AM, Deborah Swanson wrote:
> Terry Reedy wrote, on January 04, 2017 3:58 PM

>> To have a string interpreted as a clickable link, you send the string
> to
>> software capable of creating a clickable link, plus the information
>> 'this is a clickable link'*.  There are two ways to tag a string as a
>> link.  One is to use markup around the url in the string itself.
>> '<url>' and html are example.  Python provides multiple to make this
>> easy. The other is to tag the string with a separate argument.  Python
>> provides tkinter, which wraps tk Text widgets, which have a powerful
> tag
>> system.  One can define a Link tag that will a) cause text to be
>> displayed, for instance, blue and underlined and b) cause clicks on
> the
>> text to generate a web request.  One could then use
>>    mytext.insert('insert', '', Link)
>> Browser must do something similar when they encounter when they
>> encounter html link tags.
> I've actually moved on from my original question to one of opening a url
> in a browser with python, which seems to be a much more easily achieved
> goal.

> But someone else mentioned tkinter, and I looked at it while ago but
> haven't used it for anything. That really could be the way to go if you
> want to make clickable links, although you still need some kind of
> internet engine to open the url in a browser.

IDLE allows a user to add help menu entries that, when clicked on, open 
either a local file or an internet url.  For instance, adding the pair
'Pillow' and "" in the Settings 
dialog adda "Pillow" to the help menu (after the standard stuff). 
Clicking on Help => Pillow opens 
"" in the default browswer. 
IDLE just used the webbrowser module to do this.  No use re-inventing 
the wheel.  If instead "Pillow" were a link in text, the click handler 
should do something similar.

> You say, "There are two ways to tag a string as a link.  One is to use
> markup around the url in the string itself. '<url>' and html are
> examples.  Python provides multiple ways to make this easy."
> Can you tell me where I'd begin to look for these? Are they in the core
> language, or in packages?

I was referring to using either % or .format string formatting.  Both 
are in the core and described somewhere in the Library manual.  '%' 
should be in the Symbols page of the Index and 'format' on the 'F' page.

Terry Jan Reedy

More information about the Python-list mailing list