python - python gui和/或程序
问题描述
我正在使用 python GUI。所以这是交易https://learn.digilentinc.com/Documents/Digital/BT02_03_Basic_Logic_Truth_Table/AndOrTruthTable.svg
应该是这样的。例如,如果用户在条目 a 中写入 1,在条目 b 中写入 0,并且他选择标签 c 中的“和”单选按钮,则该单选按钮应显示为 0。
我尝试了一些东西,但没有奏效。谁能帮我?
这是我的代码不起作用:
from tkinter import *
root = Tk()
a = Label(root,text = "enter number a")
b = Label(root,text = "enter number b")
c = Label(root)
a.grid(row=0, sticky=E)
b.grid(row=1, sticky=E)
c.grid(row=3, sticky=E)
entry_a = Entry(root)
entry_b = Entry(root)
entry_a.grid(row=0, column=1)
entry_b.grid(row=1,column=1)
v = IntVar()
def ifvisnull(event):
if entry_a == 1 and entry_b == 1:
print(1)
else:
print(0)
def ifvisone(event):
if entry_a == 0 and entry_b == 0:
print(0)
else:
print(1)
button1 = Radiobutton(root, text="and", variable = v, value = True, command = ifvisnull())
button2 = Radiobutton(root, text="or", variable = v, value = False, command = ifvisone())
button1.grid(row=2,column=0)
button2.grid(row=2,column=1)
root.mainloop()
解决方案
我叫维卡斯。所以你的代码有一些问题。
在所有 radiobutton 中,在命令选项中,您已将括号-() 放在必须删除的命令前面 ex: command=ifvisnull
然后在所有函数中,您都提供了事件参数,除非您将小部件绑定到事件,否则您不需要这样做。
所以,只需删除事件参数
最后,在每个函数中获取输入框的值,您需要使用 entry.get() 函数/方法。直接写 entry_a 不会给你值而且这个方法也会返回 str 类型。
好的,所以有关 tkinter 的更多信息,您可以访问我的网站链接:https ://mycodenotein.netlify.app/src/tkinter.html
推荐阅读
- html - 如何在html表单的输入文本字段中显示响应数据?
- arrays - 使用声明从bash中的数组引用变量
- javascript - 如何在客户端 ES6 JavaScript 中卸载和垃圾收集模块?
- javascript - 即使调用了函数也不会触发
- java - 逆向工程 JDBC Oracle 连接字符串
- docker - 无法在安装了 redis 的 docker 容器中使用 redis-cli
- makefile - make: SECONDEXPANSION 的范围
- c++ - 静态对象的析构函数不(总是)用 LD_PRELOAD 调用
- python - 如何创建自动编码器的解码器部分?
- java - 如何每天显示不同的图像