This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2011年12月08日 01:12 by th9, last changed 2022年04月11日 14:57 by admin.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| tk_wm_test.py | th9, 2011年12月08日 01:12 | |||
| Pull Requests | |||
|---|---|---|---|
| URL | Status | Linked | Edit |
| PR 4786 | open | cheryl.sabella, 2017年12月11日 00:15 | |
| Messages (7) | |||
|---|---|---|---|
| msg149013 - (view) | Author: (th9) | Date: 2011年12月08日 01:12 | |
I want the app name to be displayed under the icon in Alt+Tab menu, but currently it only displays the className of the root, which by default is "Tk". So in Gnome3 all Tkinter apps show up as "Tk" in the panel and in the Alt+Tab menu. It is possible to override that to some extent by giving className attribute to Tk(), but I don't know what the side effects are and it doesn't preserve capitalization of the name - the first letter is capital, but all others are small. Moreover, default title of the window is taken from the className by making first letter small and leaving the rest as given, so at the end nothing is as intended. E.g., if I give calssName="APP", the app is called "App", but windows title is "aPP". There should be a way to give this information, but I don't see it exposed anywhere and it is not correctly inferred from args[0] either. Example program attached. |
|||
| msg149768 - (view) | Author: (zup) | Date: 2011年12月18日 15:40 | |
The link below suggests that the problem with method 'iconname' may be due to the method not working at the window manager level: http://www.pythonware.com/library/tkinter/introduction/x9905-icon-methods.htm summary: iconname iconname(newName=None), iconname(). Set (get) the icon name to use when this window is iconified. This method are ignored by some window managers (including Windows). |
|||
| msg149980 - (view) | Author: (th9) | Date: 2011年12月21日 10:26 | |
Yes, I'm aware of the 'iconname' docs. In this case 'iconname' probably is not the right property to set, but I don't know which one should be. For GTK+ applications there is a special function for setting application name which should be shown to user and apparently Gnome 3 is using that. http://developer.gnome.org/glib/stable/glib-Miscellaneous-Utility-Functions.html#g-set-application-name I don't know how to achieve the same for Tkinter. |
|||
| msg150055 - (view) | Author: Roger Serwy (roger.serwy) * (Python committer) | Date: 2011年12月22日 00:00 | |
Does IDLE appear as "Tk" in Gnome3? |
|||
| msg150070 - (view) | Author: (th9) | Date: 2011年12月22日 04:07 | |
No, it apears as "Toplevel". I'm not sure if the program.desktop file has something to do with that, but I didn't manage to get the application name from a desktop file to get used for Tkinter program. And I don't have any Tkinter or Tk app which would do what I'm trying to do. For example, Firefox shows up as "Mozilla Firefox", but I don't see any X property with that value for Firefox window.. it might be something Mutter is doing. Here is xprop for IDLE and Firefox: $ sleep 5; xprop XKLAVIER_STATE(INTEGER) = 0, 0 WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_FRAME_EXTENTS(CARDINAL) = 1, 1, 23, 2 _NET_WM_DESKTOP(CARDINAL) = 0 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW _NET_WM_STATE(ATOM) = WM_NORMAL_HINTS(WM_SIZE_HINTS): program specified minimum size: 1 by 1 WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW WM_HINTS(WM_HINTS): Client accepts input or input focus: True Initial state is Normal State. _NET_WM_ICON_NAME(UTF8_STRING) = "Python Shell" WM_ICON_NAME(STRING) = "Python Shell" _NET_WM_NAME(UTF8_STRING) = "Python Shell" WM_NAME(STRING) = "Python Shell" WM_CLASS(STRING) = "42772672", "Toplevel" $ sleep 5; xprop XKLAVIER_STATE(INTEGER) = 0, 0 WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 24, 0 _NET_WM_DESKTOP(CARDINAL) = 0 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW _NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_HORZ, _NET_WM_STATE_MAXIMIZED_VERT WM_HINTS(WM_HINTS): Client accepts input or input focus: True Initial state is Normal State. bitmap id # to use for icon: 0x1600094 bitmap id # of mask for icon: 0x1600095 window id # of group leader: 0x1600001 _NET_STARTUP_ID(UTF8_STRING) = "gnome-shell-17731-RD-OC-firefox-10_TIME71936264" WM_WINDOW_ROLE(STRING) = "browser" XdndAware(ATOM) = BITMAP _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0 _NET_WM_ICON(CARDINAL) = Icon (16 x 16): ░ ░▒▒▒▒░ ▒▒░▒▒▒ ░▒▒▒ ░▒░▒▒░▒ ░░▒░▒ ░░░░░░▒▒▓░░▒░░▒ ▒░░░░░▒▒▓░░▒░ ░░ ▒░░░░░░▒░░░▒▒ ░░ ▒░░░░░░▒░▒▒▒▒ ░▒ ▒░░▒▒▒▒▓▒▒▒▒▒ ░▒ ▒░░░▒▒▓▒▒▒▒▒▒ ░▒ ░▒░░▒▒▒▒▒▒▓▓░░░░ ▒▒░░▒▒▒▒▓▒░░░▒░ ▒▒░░░░▒▒▒▒░░▒▒ ▒▒░░░░░░░░░▒ ▒▒▒▒▒▒▒▒▒▒░ ▒▒▒▒▒▒▒▒░ ░░▒▒░░ Icon (32 x 32): ░▒▒▒▓▒▒▒░ ▒▒▒░ ░▒▒▒ ░▓▒░ ░▒▒░ ░ ▒▓▒░ ▒▒▒▒░ ▒▒░▒▓▒▒░░░░ ░▒▒░▒░ ▓▒▒▓▒▒▒▒▒▓░ ░░░▒▒ ▒▒ ▓▒░░░░░▒▒▒░ ░░░░▒░░░ ▒▒ ░▒░░░░░▒▒▓▒ ░░░░▓░ ░▒░ ▒▒░▒▒▒▒▒▒▒▒░░░ ░░░▒▒ ░░▒ ░▒░▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░▒▒▓░ ▒ ▒▒░▒▒▒▒▒▒▒▒░ ░▒░░░░░░░▒▒▓▒ ▒░ ▒▒▒▒▒▒▒▒▒▒░░▒▒▒░░░░▒▒▒▒▒▒▒░ ▒▒ ▓░▒▒▒▒▒▒▒░░░▒░░░░▒▒▒▒▒▒▓░▒░ ▒▓ ▓░▒▒▒▒▒▒▒▒░░▒▒▒▒▒▒▒▒▒▒▒▓▒ ▒▓ ▓░▒▒▒▒▒▒▓▓▓▓▒▒▒▒▒▒▒▒▓▓▓▓▒ ▒▓ ░▓▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒ ░ ░▒▓ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▒ ░ ░░▒ ▒▒▒▒▒▒▒▒▒▒░░▒▒▒░░ ░▓▓▓▓▒░ ░░░░▒ ░▒▒▒▒▒▒▒▒▒▒░░░░░▒▒▒▓▓▓▓░░░░░░▒░ ▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓░░░░░░▒ ▒▓▒▒▒▒▒▒░░▒▓▓▓▓▓▓▓▓▓▓▒░░░░░▒▒ ░▓▓▓▒▒▒▒░░░▒▓▓▓▓▓▓▓▓▒░░░░░▒▓░ ▒▓▓▓▒▒▒▒░░░░▒▓▓▓▓▒░░░░░▒▒▓▒ ▓▓▓▒▒▒▒▒▒░░░░░░░░░░░░░░░▒░ ░▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░▒░ ▒▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒ ▒▓▓▓▓▒▒▒▒▒▒▒░░░░░▒▒▒▒ ░▒▓▓▓▓▒▒▒▒▒▒▒▒░░░▒▒▒░ ░▒▒▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒░░ ░░▒▒▒▓▓▓▓▓▓▒▒▒▒░░ ░░▒▒▒▒▒▒▒▒▒░░ Icon (48 x 48): ░▒▒▓▓▓▓▓▒▒░ ░▒▓▓▒░░ ░░▒▓▒░ ▒▓▓▒ ▒▓▓▒ ░▓▓▒░ ░░▒▓░ ▒▓▓▒░ ░░ ░▓▒ ░░ ░▓▓▓▒▒░░ ░▒ ▒▓░ ▒░ ░▓▓▓▒▒░░░░░░ ░░▒░ ░▒▒ ░░░░▓▓▓▓▒▒▒░▒▒▒░ ░░░▒▒░ ▒▒ ▒░▒▒▒▓▒▒▒▒▒▒▒▒░ ░░▒░░▒ ▒▒ ▒▒▒▒░░░░░░▒▒▒▒░ ░░░░░▒▒░ ░ ▒░ ▒▒▒░░▒▒▒░▒▒▒▒▒░ ░░░░░░▒▒ ░▒ ▒░░░▒▒▒▒▒▒▒▒▒▒░ ░░░░░░▒▒ ▒░ ▒░▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░ ░░░░▒▓░ ░ ░ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ░░░░░░▒▒▒ ░ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░░░░░░░░░░▒▒▒▒▓ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ ░▒░░░░░░░░░░▒▒▒▒▓░ ░░▒▒▒▒▒▒▒▒▒▒▒▒░░ ▒▒▒░░░░░▒▒▒░░▒▒▒▒▓░ ░ ░░▒▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒░░░░░░░▒▒▒▒▒▒▒▓▒▒▒░░ ░░ ░░▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒░░░░░░▒▒▒▒▒▒▒▒▒▓▒ ▒ ░░ ░▒░ ░▒▒▒▒▒▒▒▒▒▒░░░░░░▒░░░░░░▒▒▒▒▒▒▒▒▒▒▓▒ ░░ ░▒▒ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓ ░ ░▓▒ ░▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓ ░▓▒ ▒▒▒▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓ ░ ▒▒░ ░▒▒▒▒▒▒▒▒▒▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓░ ░ ░▒░░ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓░ ░░ ░░░░░ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░▒▒▒▒▒▒░░░░▒▒▓▓▓▓▓▓▒▒░ ░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒░░░░░ ▒▒▓▓▓▓▓▒░░ ░░░░░░ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░▒▒▒░▒▓▓▓▓▓▓░░░ ░░░░░░░ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░▒▒▒▒▒▓▓▓▓▓▓▓▓▓░░░░░░░░░▒ ▒▒▓▒▒▒▒▒▒▒▒▒▒▒▓▓▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░▒░ ░▒▓▒▒▒▒▒▒▒▒▒▒░▒▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░▒░ ▒▓▓▒▒▒▒▒▒▒░░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░░░░░░░▒▒░ ▒▒▓▓▓▒▒▒▒▒▒░░░░░▒▒▓▓▓▓▓▓▓▓▓▓▒▒░░░░░░░░░▒▒ ▒▓▓▓▒▒▒▒▒▒▒░░░░░░▒▓▓▓▓▓▓▓▒░░░░░░░░░░░▒▓░ ▒▓▓▓▓▒▒▒▒▒▒▒▒░░░░░░▒▒▒▒▒░░░░░░░░░░░▒▒▒░ ▒▓▓▓▓▒▒▒▒▒▒▒▒▒░░░░░░░░░░▒▒░░░░░░░▒▒░░ ░▒▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░░░░░░░░ ░▒▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░ ░▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░ ░▒▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░░░ ░▒▒▓▓▓▓▒▒▒▒▒▒▒▒▒░░░░░░░░░▒▒▒▒ ░░▒▒▒▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░ ░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒▒▒▒░░ ░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░▒▒▒░░ ░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░ ░░░░▒▒▒▒▒▒▒▒▒▒░░░░░ ░░░░░░░░░░░ _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 23068819 _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL _NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x1600092 WM_CLIENT_LEADER(WINDOW): window id # 0x1600001 _NET_WM_PID(CARDINAL) = 24976 WM_LOCALE_NAME(STRING) = "lv_LV.utf8" WM_CLIENT_MACHINE(STRING) = "RD-OC" WM_NORMAL_HINTS(WM_SIZE_HINTS): program specified minimum size: 0 by 0 window gravity: NorthWest WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST WM_CLASS(STRING) = "Navigator", "Firefox" WM_ICON_NAME(STRING) = "Issue 13553: Tkinter doesn't set proper application name - Python tracker - Mozilla Firefox" _NET_WM_ICON_NAME(UTF8_STRING) = "Issue 13553: Tkinter doesn't set proper application name - Python tracker - Mozilla Firefox" WM_NAME(STRING) = "Issue 13553: Tkinter doesn't set proper application name - Python tracker - Mozilla Firefox" _NET_WM_NAME(UTF8_STRING) = "Issue 13553: Tkinter doesn't set proper application name - Python tracker - Mozilla Firefox" |
|||
| msg166948 - (view) | Author: Roger Serwy (roger.serwy) * (Python committer) | Date: 2012年07月31日 02:30 | |
It looks like this code will set the title properly in the latest GNOME shell (3.4):
from Tkinter import *
app = Tk(className='App Name')
app.title('App Title')
app.mainloop()
The documentation should be updated to explain the arguments to Tk().
|
|||
| msg224883 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2014年08月05日 20:23 | |
The resolution of this issue should be to properly document the Tk class. The 3.4 docs currently say: "class tkinter.Tk(screenName=None, baseName=None, className='Tk', useTk=1) The Tk class is instantiated without arguments. This creates a toplevel widget of Tk which usually is the main window of an application. Each instance has its own associated Tcl interpreter." The signature is incomplete -- see below. The first sentence is wrong; there are arguments, they just all happen to have defaults. The next sentence should be something like "Return a toplevel Tk widget, which is usually the main window of an application." Tk.__doc__ is 'Toplevel widget of Tk which represents mostly the main window\n of an application. It has an associated Tcl interpreter.' This is probably ok. Tk.__init__ signature and Tk,__init__.__doc__ are __init__(self, screenName=None, baseName=None, className='Tk', useTk=1, sync=0, use=None) "Return a new Toplevel widget on screen SCREENNAME. A new Tcl interpreter will be created. BASENAME will be used for the identification of the profile file (see readprofile). It is constructed from sys.argv[0] without extensions if None is given. CLASSNAME is the name of the widget class." "Toplevel" should be "toplevel" as in : Tk is not a subclass of Toplevel. Rather Toplevel is similar to Tk but with the BaseWidget signature. The argument list needs to be completed and perhaps a bit more said about the one documented. Does 'screen' apply to anything other than X11? Could it be used on Windows to put the window on a secondary screen? Is Gnome the only user framework that uses classname? |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:24 | admin | set | github: 57762 |
| 2018年02月02日 22:13:29 | terry.reedy | set | versions: + Python 3.6, Python 3.8 |
| 2017年12月11日 00:16:47 | cheryl.sabella | set | versions: + Python 3.7, - Python 2.7, Python 3.4, Python 3.5 |
| 2017年12月11日 00:15:57 | cheryl.sabella | set | keywords:
+ patch stage: needs patch -> patch review pull_requests: + pull_request4687 |
| 2014年08月05日 20:23:40 | terry.reedy | set | assignee: docs@python components: + Documentation title: Tkinter doesn't set proper application name in Gnome Shell -> Tkinter Tk args and Gnome Shell application name nosy: + terry.reedy, serhiy.storchaka, docs@python versions: + Python 3.4, Python 3.5, - Python 3.2 messages: + msg224883 stage: needs patch |
| 2012年07月31日 02:30:25 | roger.serwy | set | messages:
+ msg166948 title: Tkinter doesn't set proper application name -> Tkinter doesn't set proper application name in Gnome Shell |
| 2011年12月22日 04:07:12 | th9 | set | messages: + msg150070 |
| 2011年12月22日 00:00:42 | roger.serwy | set | nosy:
+ roger.serwy messages: + msg150055 |
| 2011年12月21日 10:26:40 | th9 | set | messages: + msg149980 |
| 2011年12月18日 15:40:26 | zup | set | nosy:
+ zup messages: + msg149768 |
| 2011年12月08日 01:12:08 | th9 | create | |