python - 我如何在 tkinter 的复选按钮上使用“if”。(蟒蛇3.8)
问题描述
我制作了一个名为的新按钮btn3
,用于执行命令checkbox1
。但是“if”命令需要知道检查按钮的状态。你是怎样做的。它说没有称为 onvalue 的属性。我已经检查了与此类似的其他 stackoverflow 问题,但它们没有回答我的问题或不起作用。
from tkinter import *
import tkinter.messagebox
window = Tk()
window.title("Anti Bullying App")
window.geometry("555x100")
def checkbox1():
if c1.onvalue == 1:
tkinter.messagebox.showinfo("Error", "Report It!", icon = "warning")
ayb = Label(window, text = " Are you being bullied? ", font = "Ariel 20 bold")
ayb.grid()
var1 = IntVar()
var2 = IntVar()
c1 = Checkbutton(window, text='Yes', font = "10",variable=var1, onvalue=1, offvalue=0)
c1.grid()
c2 = Checkbutton(window, text='No', font = "10",variable=var2, onvalue=1, offvalue=0)
c2.grid(row = 1, column = 2)
btn3 = Button(window, text = "submit", command = checkbox1)
解决方案
您可以在这里做一些事情,但最有可能的选择是get()
在您的IntVar()
.
不过,您需要进行一些清理工作。
看看下面的内容,如果您有任何问题,请告诉我。我已经清理了您的代码以更紧密地遵循 PEP8 并添加了一些几何配置以使事情变得均匀,因此您无需在标签中添加一堆空格。
import tkinter as tk
import tkinter.messagebox
root = tk.Tk()
root.columnconfigure(0, weight=1)
root.columnconfigure(1, weight=1)
root.title('Anti Bullying App')
root.geometry('555x100')
def checkbox1():
if var1.get() == 1:
tkinter.messagebox.showinfo('Error', 'Report It!', icon='warning')
tk.Label(root, text='Are you being bullied?', font='Ariel 20 bold').grid(row=0, column=0, columnspan=2, sticky='ew')
var1 = tk.IntVar(root, value=0)
var2 = tk.IntVar(root, value=0)
tk.Checkbutton(root, text='Yes', font='10', variable=var1, onvalue=1, offvalue=0).grid(row=1, column=0, sticky='ew')
tk.Checkbutton(root, text='No', font='10', variable=var2, onvalue=1, offvalue=0).grid(row=1, column=1, sticky='ew')
tk.Button(root, text="Submit", command=checkbox1).grid(row=2, column=0, columnspan=2)
root.mainloop()
结果:
推荐阅读
- python - 从 Pandas Dataframe 中的滚动时间窗口中识别重复项
- java - 使用方法调用打印出过滤后的二维数组时遇到问题
- node.js - Feathers js - 类型错误:app.get 不是函数
- java - 如何使用 keycloak 保护 angular/spring 应用程序?
- image-processing - 关于相机中渐晕的一些问题
- angular - 嵌套组件上的动画未触发
- r - 我需要在 R 中将奇怪的日期格式从字符转换为日期格式
- git - Git pull 不会在无限 for 循环中影响本地文件?
- jupyter-notebook - 如何从 Jupyter notebook 创建的 Reveal.js 幻灯片中删除过渡?
- android - 当您的 android 应用程序中有 300 多个首选项时,从共享首选项迁移到 Jetpack Proto 数据存储?