【问题标题】:Display list of text in tkinter在 tkinter 中显示文本列表
【发布时间】:2020-11-03 20:13:00
【问题描述】:

我想在tkinter 中显示我的标签编码结果,就像我在python 中使用print 函数一样。

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
df["REPORT_FAMILY"] = le.fit_transform(df["REPORT_FAMILY"])
print("Mapping: ")
for i, item in enumerate(le.classes_):
    print(item, "-->", i)

此代码产生如下结果:

Mapping: 
ADELBERT SC3000 --> 0
ADELBERT SC3020 --> 1
ALAR --> 2
ALTER EGO SC460 --> 3
ALTER EGO SCV360 --> 4
ARYA --> 5
BEACHCOMBER --> 6

我如何在 tkinter 中做同样的事情?我使用以下代码但收到错误。我的目标是将编码的 REPORT_FAMILY 列显示到 REPORT_FAMILY 中的相应类别。

import tkinter as tk 
#creating the window
window = tk.Tk()
window.title("FPY+ Prediction")

canvas1 = tk.Canvas(window, width = 500, height = 300)
canvas1.pack()

t = tk.Text(window)
for i, item in enumerate(le.classes_):
    t.insert(item, "-->", i)
t.pack()

window.mainloop()

我收到以下错误:

---------------------------------------------------------------------------
TclError                                  Traceback (most recent call last)
<ipython-input-30-6c09ea2a9048> in <module>
     11 canvas1.create_window(200, 300)
     12 for i, item in enumerate(le.classes_):
---> 13     t.insert(item, "-->", i)
     14 t.pack()
     15 

~\Anaconda3\lib\tkinter\__init__.py in insert(self, index, chars, *args)
   3270         """Insert CHARS before the characters at INDEX. An additional
   3271         tag can be given in ARGS. Additional CHARS and tags can follow in ARGS."""
-> 3272         self.tk.call((self._w, 'insert', index, chars) + args)
   3273     def mark_gravity(self, markName, direction=None):
   3274         """Change the gravity of a mark MARKNAME to DIRECTION (LEFT or RIGHT).

TclError: bad text index "ADELBERT SC3000"

【问题讨论】:

  • 请提及上面的错误。
  • t.insert(tk.INSERT, f"{item}--&gt;{i}\n").你需要传递一个索引参数。
  • @AyushRaj 我已经在问题中包含了错误
  • @Nur Atiqah 你忘了在t.insert(index, ....)中添加索引
  • @AyushRaj 正是...正如 jizihaoSAMA 指出的那样

标签: python-3.x tkinter tkinter-canvas label-encoding


【解决方案1】:

insert 方法的第一个参数需要是一个索引。最常见的是“insert”在插入光标处插入,“end”在末尾插入。

在要插入的索引和项目之后,下一个参数被解释为标签列表。因此,如果您希望 "--&gt;"i 成为插入文本的一部分,则需要将其作为第二个参数的一部分。

您还需要添加换行符。

t.insert(item, f"{item} --> {i}\n")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2021-03-23
    • 1970-01-01
    相关资源
    最近更新 更多