首页 > 解决方案 > 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()

标签: pythonpython-3.xuser-interfacetkinter

解决方案


我叫维卡斯。所以你的代码有一些问题。

  1. 在所有 radiobutton 中,在命令选项中,您已将括号-() 放在必须删除的命令前面 ex: command=ifvisnull

  2. 然后在所有函数中,您都提供了事件参数,除非您将小部件绑定到事件,否则您不需要这样做。

    所以,只需删除事件参数

  3. 最后,在每个函数中获取输入框的值,您需要使用 entry.get() 函数/方法。直接写 entry_a 不会给你值而且这个方法也会返回 str 类型。

好的,所以有关 tkinter 的更多信息,您可以访问我的网站链接:https ://mycodenotein.netlify.app/src/tkinter.html


推荐阅读