python - Tkinter 文本 selection_get() 错误

标签 python textbox tkinter

我目前正在开发一个 Tkinter 应用程序,它使用 TextWidget 作为主要小部件。

当我尝试获取当前选择时,出现错误,但我不明白为什么...

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "C:\Users\Lina\Documents\Programmation\VPE project.py", line 502, in rechercher
    texte=code_text.selection_get()
  File "C:\Python27\lib\lib-tk\Tkinter.py", line 626, in selection_get
    return self.tk.call(('selection', 'get') + self._options(kw))
TclError: PRIMARY selection doesn't exist or form "STRING" not defined

谢谢。

编辑:我知道它为什么不起作用,我绑定(bind)到 Ctrl-F,但它已经绑定(bind)在 TextWidgets 中(默认情况下,它与 LeftArrow 做的事情完全一样)。 现在的问题是,我该如何摆脱它?

最佳答案

该错误只是告诉您未选择任何内容。这不是一个错误本身,只是一种表达“没有什么可得到”的方式。这可能是正确的,或者您可能选择了某些内容但未将其导出到“选择”。如果您将小部件上的 exportselection 选项设置为 true,则您选择的任何内容都应该复制到选择中。如果不是,则说明您的问题中没有足够的代码来回答原因。

但是,要回答“如何获取在小部件中选择的文本”的问题:在文本小部件中选择的文本具有标签“sel”。您可以使用 textwidget.get('sel.first', 'sel.last')

获取此文本

对标签使用 get 方法比使用 selection_get 更正确,因为有可能在小部件中没有任何选择但仍然有 selection_get 返回一些东西(例如:返回任何其他小部件已经导出到选择)

关于python - Tkinter 文本 selection_get() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7090346/

相关文章:

python - 正则表达式组 : How to get the desired output with a more specific match pattern?

html - 为什么 html 表格和文本框不对齐,即使它们在 CSS 中具有相同的宽度?

Python - Tkinter - 图形用户界面

mysql - 如何限制可以输入到 Visual Basic 文本框的数据类型?

mysql - 从简单的选择查询 TADOQuery Delphi 捕获值

python - 单选按钮变量不更新

python - 在全屏模式下的 Raspberry pi 上的背景图像上创建文本

python - 使用正则表达式进行哈希表/字典/ map 查找

python - Dataframe Spark 2.2.1 上的可调用列对象

python - 如何设置时间间隔以从输入视频中获取帧?