Why does <> binding in Python's Tkinter trigger spuriously when double clicking an Entry widget?
As part of a larger bock of code, I discovered an oddity with tkinter listbox bindings. The below code gives a breakdown of the issue. When binding a listbox with 'listboxselected', selecting an item within that listbox, then double left clicking on the Entry, the listboxselected event is triggered once.
I have tested this in python 3.3.2, 3.6.3 and 3.7.1. The error only occurs in the two latter versions. I have checked the doc's and cant find any updates to cause this issue. Does anyone have any idea to why this behaviour may be occurring?
from tkinter import Tk, Listbox, Entry, Button
from functools import partial
root = Tk()
myList = Listbox(root)
myList.insert("end", "spam", "eggs", "chips")
myList.pack()
myList.bind("<<ListboxSelect>>", partial(print))
myEntry = Entry(root)
myEntry.pack()
python tkinter listbox tkinter-entry event-binding
add a comment |
As part of a larger bock of code, I discovered an oddity with tkinter listbox bindings. The below code gives a breakdown of the issue. When binding a listbox with 'listboxselected', selecting an item within that listbox, then double left clicking on the Entry, the listboxselected event is triggered once.
I have tested this in python 3.3.2, 3.6.3 and 3.7.1. The error only occurs in the two latter versions. I have checked the doc's and cant find any updates to cause this issue. Does anyone have any idea to why this behaviour may be occurring?
from tkinter import Tk, Listbox, Entry, Button
from functools import partial
root = Tk()
myList = Listbox(root)
myList.insert("end", "spam", "eggs", "chips")
myList.pack()
myList.bind("<<ListboxSelect>>", partial(print))
myEntry = Entry(root)
myEntry.pack()
python tkinter listbox tkinter-entry event-binding
add a comment |
As part of a larger bock of code, I discovered an oddity with tkinter listbox bindings. The below code gives a breakdown of the issue. When binding a listbox with 'listboxselected', selecting an item within that listbox, then double left clicking on the Entry, the listboxselected event is triggered once.
I have tested this in python 3.3.2, 3.6.3 and 3.7.1. The error only occurs in the two latter versions. I have checked the doc's and cant find any updates to cause this issue. Does anyone have any idea to why this behaviour may be occurring?
from tkinter import Tk, Listbox, Entry, Button
from functools import partial
root = Tk()
myList = Listbox(root)
myList.insert("end", "spam", "eggs", "chips")
myList.pack()
myList.bind("<<ListboxSelect>>", partial(print))
myEntry = Entry(root)
myEntry.pack()
python tkinter listbox tkinter-entry event-binding
As part of a larger bock of code, I discovered an oddity with tkinter listbox bindings. The below code gives a breakdown of the issue. When binding a listbox with 'listboxselected', selecting an item within that listbox, then double left clicking on the Entry, the listboxselected event is triggered once.
I have tested this in python 3.3.2, 3.6.3 and 3.7.1. The error only occurs in the two latter versions. I have checked the doc's and cant find any updates to cause this issue. Does anyone have any idea to why this behaviour may be occurring?
from tkinter import Tk, Listbox, Entry, Button
from functools import partial
root = Tk()
myList = Listbox(root)
myList.insert("end", "spam", "eggs", "chips")
myList.pack()
myList.bind("<<ListboxSelect>>", partial(print))
myEntry = Entry(root)
myEntry.pack()
python tkinter listbox tkinter-entry event-binding
python tkinter listbox tkinter-entry event-binding
edited Jan 2 at 5:41
Bryan Oakley
220k22271432
220k22271432
asked Jan 2 at 5:17
D HallD Hall
383
383
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I can't duplicate this on OSX, but my guess is that when you double-click in the entry, the text in the entry is selected. When the text is selected (even if there is nothing to select), the item in the listbox is de-selected. The de-selection triggers the binding.
If you want to be able to have something in both the listbox and entry selected, set exportselection=False
in the listbox.
That's spot on thanks! Had me scratching my head for a while.
– D Hall
Jan 2 at 5:48
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54001541%2fwhy-does-listboxselect-binding-in-pythons-tkinter-trigger-spuriously-when-d%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I can't duplicate this on OSX, but my guess is that when you double-click in the entry, the text in the entry is selected. When the text is selected (even if there is nothing to select), the item in the listbox is de-selected. The de-selection triggers the binding.
If you want to be able to have something in both the listbox and entry selected, set exportselection=False
in the listbox.
That's spot on thanks! Had me scratching my head for a while.
– D Hall
Jan 2 at 5:48
add a comment |
I can't duplicate this on OSX, but my guess is that when you double-click in the entry, the text in the entry is selected. When the text is selected (even if there is nothing to select), the item in the listbox is de-selected. The de-selection triggers the binding.
If you want to be able to have something in both the listbox and entry selected, set exportselection=False
in the listbox.
That's spot on thanks! Had me scratching my head for a while.
– D Hall
Jan 2 at 5:48
add a comment |
I can't duplicate this on OSX, but my guess is that when you double-click in the entry, the text in the entry is selected. When the text is selected (even if there is nothing to select), the item in the listbox is de-selected. The de-selection triggers the binding.
If you want to be able to have something in both the listbox and entry selected, set exportselection=False
in the listbox.
I can't duplicate this on OSX, but my guess is that when you double-click in the entry, the text in the entry is selected. When the text is selected (even if there is nothing to select), the item in the listbox is de-selected. The de-selection triggers the binding.
If you want to be able to have something in both the listbox and entry selected, set exportselection=False
in the listbox.
answered Jan 2 at 5:38
Bryan OakleyBryan Oakley
220k22271432
220k22271432
That's spot on thanks! Had me scratching my head for a while.
– D Hall
Jan 2 at 5:48
add a comment |
That's spot on thanks! Had me scratching my head for a while.
– D Hall
Jan 2 at 5:48
That's spot on thanks! Had me scratching my head for a while.
– D Hall
Jan 2 at 5:48
That's spot on thanks! Had me scratching my head for a while.
– D Hall
Jan 2 at 5:48
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54001541%2fwhy-does-listboxselect-binding-in-pythons-tkinter-trigger-spuriously-when-d%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown