我正在编写一个tkinter程序,由于某种原因[我有一个绑定到control-O的函数]当我使用它时,它会创建一个新行。函数如下:
def fileOpen(textView):
try:
global currentText
global currentName
global currentTempName
myfile = tkFileDialog.askopenfile(title='Open a file', mode='r')
text.delete('1.0', END)
loadedfile = myfile.read()
currentText = loadedfile
currentFile = myfile.name
currentName = currentFile
currentName = currentName.rsplit('/', 1)[-1] #get the 'name.ext' part only
currentName = currentName.rsplit('\\', 1)[-1] #incase you're usin windows
currentTempName = currentName
currentFileButton.config(text = currentName)
myfile.close()
textView.insert("end", loadedfile)
except:
return
这里是装订的地方:
def ctrlO(arg):
fileOpen(text)
以及实际约束力:
root.bind("<Control-o>", ctrlO)
[我使用的是文本小部件,绑定到它并不能解决问题]
为了更好地解释这个问题,当我按ctrl+o打开openfile对话框时,它会创建一个新行,就像我按Enter一样,但只在文件的末尾。我可以提供更多的代码,如果需要的话,但这些是唯一的地方,这些是在使用。你知道吗
谢谢
(我意识到这个功能很混乱)
编辑:这并没有真正影响程序,因为我清除了文字之间的开口,但它只是有点烦人,我相信很容易修复。你知道吗
这是文本小部件中Control-O的正常行为;即使您根本没有键绑定,也会发生这种情况。要覆盖它,需要在事件处理程序中
return "break"
,以防止事件进一步传播。我非常确定,您必须直接绑定到文本小部件才能在内置行为之前激活它。您可能仍然需要根小部件上的绑定,这样即使用户从未单击文本字段以使其具有键盘焦点,该命令也可以工作。你知道吗相关问题 更多 >
编程相关推荐