在文本框中插入一个复选框,python 3.6

时间:2017-08-09 23:28:21

标签: python python-3.x checkbox tkinter textbox

正如标题所说,我希望在文本框中插入一个复选框。我尝试并搜索了我能想到的不同方式,但没有任何工作。任何帮助是极大的赞赏! 我不会列出我尝试的每一种方式,否则这个页面会非常长。

以下代码只是一个没有复选框的示例。

import tkinter as tk
self = tk.Tk()
TEXT_BOX = tk.Text(self, width = 20, height = 10)
TEXT_BOX.pack()
app = self
app.mainloop()

这也是我想要使用的复选框,我只是想弄清楚如何插入它。

var1 = tk.IntVar()
TEST = tk.Checkbutton(self, variable = var1)

如果您知道更好的方法,请告诉我。

谢谢布莱恩。工作代码是;

import tkinter as tk
self = tk.Tk()
TEXT_BOX = tk.Text(self, width = 20, height = 10)
TEXT_BOX.pack()
var1 = tk.IntVar()
TEST = tk.Checkbutton(self, variable = var1)
TEXT_BOX.window_create("1.0", window = TEST)
TEXT_BOX.insert("end", "\n")
app = self
app.mainloop()

2 个答案:

答案 0 :(得分:1)

下面显示了一个示例,说明如何创建一些send-buffer-size=0 \ ,然后仔细检查哪些已被选中:

CheckButtons

这会创建一个数组,其中每个from tkinter import * #imports tkinter root = Tk() #sets root as the Tk window examples = 10 #sets the number of example to create label = [] #empty array for storing labels checkbox = [] #empty array for storing checkboxes array = [] #empty array for storing checkbox boolean states for i in range(examples): #for loop for creating the contents of the page array.append(BooleanVar()) #adds an empty tk booleans value to array label.append(Label(root, text="Example: "+str(i))) #creates a label label[i].grid(column=0, row=i) #grids the above label checkbox.append(Checkbutton(root, variable=array[i])) #creates a button. the state variable for the button is stored in the next element of the array checkbox[i].grid(column=1, row=i) #grids button def command(): #command executed from button below for i in range(examples): #for loop for each example if array[i].get() == True: #checks if the button is ticked (True) print("Example "+str(i)+" is ticked.") #prints this if the button is ticked else: print("Example "+str(i)+" is not ticked.") #prints this if the button is not ticked button = Button(root, text="Ok", command=command) #creates a button to process the output button.grid() #grids button root.mainloop() #starts event loop 都与相关element的{​​{1}}状态相关联。然后,程序使用boolean循环遍历数组,并根据checkbutton循环打印结果,该循环检查每个for的{​​{1}}个状态。

类似的原则可以应用于您正在寻找的内容,但显然不是打印无用的声明,而是对您的数据采取某种行动。

答案 1 :(得分:0)

要将复选框(或任何窗口小部件)插入文本窗口小部件,请使用记录的方法window_create

示例:

TEXT_BOX.window_create("1.0", window=TEST)
TEXT_BOX.insert("end", "<-- a checkbox!\n")

这在文本小部件文档中提到(例如:help(tk.Text))以及许多流行的教程: