如何获取 tkinter 标签的用户输入?
How to get user input for tkinter Label?
我正在创建一个使用进度条跟踪任务进度的应用程序。我的想法是,我要求用户输入有关他们必须完成的任务的详细信息(客户姓名和客户联系方式)。每当您单击按钮添加任务时,我应该得到以下信息。
客户名称
客户联系人
进度条
增量按钮
但是每次我运行下面的代码我都会得到错误
Traceback (most recent call last):
File "c:/Users/algor/OneDrive/Documents/Computer Science/Testgrid.py", line 44, in <module>
new = CNuser.get()
AttributeError: 'NoneType' object has no attribute 'get'
谁能告诉我哪里出了问题?
我尝试查看在 tkinter 中处理用户输入的示例,但没有成功。
from tkinter import *
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
from tkinter import ttk
from PIL import ImageTk, Image
import smtplib
import os
tasks = Tk()
tasks.geometry("1920x1080")
# These are the contents of the tasks tab
rows = 0
while rows < 50:
tasks.rowconfigure(rows, weight=20)
tasks.columnconfigure(rows, weight=20)
rows += 1
count = 1
count1 = 0
subtitle = Label(tasks, text="Task List:").grid(row=0, column=0)
CN = Label(tasks, text="Client Name*").grid(row=2, column=0, padx=3, pady=3)
CNuser = Entry(tasks, textvariable=CN).grid(row=3, column=0, padx=3, pady=3)
CC = Label(tasks, text="Client Contact*").grid(row=5, column=0, padx=3, pady=3)
CCuser = Entry(tasks, textvariable=CC).grid(row=6, column=0, padx=3, pady=3)
# progress bars
def addtask():
global count
global count1
global CNuser
global CCuser
new = CNuser.get()
def step():
my_progress["value"] += 20
Label(tasks, text=new, font=("Calibri")).grid(
column=1, row=count + 1)
Label(tasks, text=CCuser, font=("Calibri")).grid(
column=1, row=count + 2)
my_progress = ttk.Progressbar(
tasks, orient=HORIZONTAL, length=600, mode='determinate')
my_progress.grid(column=1, row=count + 3)
my_button = Button(tasks, text="New action complete",
command=step).grid(column=1, row=count + 4)
for i in range(1, 6):
count1 += 1
count = count + count1
Button(tasks, text="New task", command=addtask).grid(row=1, column=0)
tasks.mainloop()
常见错误
variable = Widget().grid()
这个分配 None
到 variable
因为 grid()
/pack()
/place()
returns None
你必须分两步完成
variable = Widget()
variable.grid()
我正在创建一个使用进度条跟踪任务进度的应用程序。我的想法是,我要求用户输入有关他们必须完成的任务的详细信息(客户姓名和客户联系方式)。每当您单击按钮添加任务时,我应该得到以下信息。
客户名称
客户联系人
进度条
增量按钮
但是每次我运行下面的代码我都会得到错误
Traceback (most recent call last):
File "c:/Users/algor/OneDrive/Documents/Computer Science/Testgrid.py", line 44, in <module>
new = CNuser.get()
AttributeError: 'NoneType' object has no attribute 'get'
谁能告诉我哪里出了问题?
我尝试查看在 tkinter 中处理用户输入的示例,但没有成功。
from tkinter import *
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
from tkinter import ttk
from PIL import ImageTk, Image
import smtplib
import os
tasks = Tk()
tasks.geometry("1920x1080")
# These are the contents of the tasks tab
rows = 0
while rows < 50:
tasks.rowconfigure(rows, weight=20)
tasks.columnconfigure(rows, weight=20)
rows += 1
count = 1
count1 = 0
subtitle = Label(tasks, text="Task List:").grid(row=0, column=0)
CN = Label(tasks, text="Client Name*").grid(row=2, column=0, padx=3, pady=3)
CNuser = Entry(tasks, textvariable=CN).grid(row=3, column=0, padx=3, pady=3)
CC = Label(tasks, text="Client Contact*").grid(row=5, column=0, padx=3, pady=3)
CCuser = Entry(tasks, textvariable=CC).grid(row=6, column=0, padx=3, pady=3)
# progress bars
def addtask():
global count
global count1
global CNuser
global CCuser
new = CNuser.get()
def step():
my_progress["value"] += 20
Label(tasks, text=new, font=("Calibri")).grid(
column=1, row=count + 1)
Label(tasks, text=CCuser, font=("Calibri")).grid(
column=1, row=count + 2)
my_progress = ttk.Progressbar(
tasks, orient=HORIZONTAL, length=600, mode='determinate')
my_progress.grid(column=1, row=count + 3)
my_button = Button(tasks, text="New action complete",
command=step).grid(column=1, row=count + 4)
for i in range(1, 6):
count1 += 1
count = count + count1
Button(tasks, text="New task", command=addtask).grid(row=1, column=0)
tasks.mainloop()
常见错误
variable = Widget().grid()
这个分配 None
到 variable
因为 grid()
/pack()
/place()
returns None
你必须分两步完成
variable = Widget()
variable.grid()