Как сделать таблицу правды на Python Tkinter? - PullRequest
0 голосов
/ 01 сентября 2018

Я хочу иметь таблицу истинности, где пользователь может вводить значения для входов и выходов. Я пытался сделать это с записями, но код повторяется много раз, и мне было интересно, есть ли более простой способ составить таблицу истинности.

Я пытался использовать цикл for для создания записей, но это всегда приводит к ошибкам. Мне также было интересно, как я могу проверить, вводит ли пользователь правильные значения для таблицы истинности, у меня есть текстовый файл с вопросами и ответами, но я не знаю, как заставить программу проверять ответы из текстового файла. Спасибо за вашу помощь.

Это код для записей: от Ткинтер импорт *

root=Tk()
input1Lb=Label(root,text="input 1")
input1Lb.grid(row=0,column=0)
input2Lb=Label(root,text="input 2")
input2Lb.grid(row=0,column=1)
input3Lb=Label(root,text="input 3")
input3Lb.grid(row=0,column=2)
input4Lb=Label(root,text="input 4")
input4Lb.grid(row=0,column=3)
qLb=Label(root,text="Answer")
qLb.grid(row=0,column=6)

tt1=Entry(root)
tt1.grid(row=17,column=0)
tt2=Entry(root)
tt2.grid(row=17,column=1)
tt3=Entry(root)
tt3.grid(row=17,column=2)
tt4=Entry(root) 
tt4.grid(row=17,column=3)
tt5=Entry(root)
tt5.grid(row=17,column=4)
tt6=Entry(root)
tt6.grid(row=17,column=5) 
tt7=Entry(root)
tt7.grid(row=17,column=6)

tt8=Entry(root)
tt8.grid(row=1,column=0)
tt9=Entry(root) 
tt9.grid(row=1,column=1)
tt10=Entry(root)
tt10.grid(row=1,column=2)
tt11=Entry(root)
tt11.grid(row=1,column=3)
tt12=Entry(root)
tt12.grid(row=1,column=4)
tt13=Entry(root)
tt13.grid(row=1,column=5)
tt14=Entry(root)
tt14.grid(row=1,column=6)

tt15=Entry(root)
tt15.grid(row=2,column=0)
tt16=Entry(root)
tt16.grid(row=2,column=1)
tt17=Entry(root)
tt17.grid(row=2,column=2)
tt18=Entry(root)
tt18.grid(row=2,column=3)
tt19=Entry(root)
tt19.grid(row=2,column=4)
tt20=Entry(root)
tt20.grid(row=2,column=5)
tt21=Entry(root)
tt21.grid(row=2,column=6)

tt22=Entry(root)
tt22.grid(row=3,column=0)
tt23=Entry(root)
tt23.grid(row=3,column=1)
tt24=Entry(root)
tt24.grid(row=3,column=2)
tt25=Entry(root)
tt25.grid(row=3,column=3)
tt26=Entry(root)
tt26.grid(row=3,column=4)
tt27=Entry(root) 
tt27.grid(row=3,column=5)
tt28=Entry(root)
tt28.grid(row=3,column=6)

tt29=Entry(root)
tt29.grid(row=4,column=0)
tt30=Entry(root)
tt30.grid(row=4,column=1)
tt31=Entry(root)
tt31.grid(row=4,column=2)
tt32=Entry(root)
tt32.grid(row=4,column=3)
tt33=Entry(root)
tt33.grid(row=4,column=4)
tt34=Entry(root)
tt34.grid(row=4,column=5)
tt35=Entry(root)
tt35.grid(row=4,column=6)

tt36=Entry(root)
tt36.grid(row=5,column=0)
tt37=Entry(root)
tt37.grid(row=5,column=1)
tt38=Entry(root)
tt38.grid(row=5,column=2)
tt39=Entry(root)
tt39.grid(row=5,column=3)
tt40=Entry(root)
tt40.grid(row=5,column=4)
tt41=Entry(root)
tt41.grid(row=5,column=5)
tt42=Entry(root)
tt42.grid(row=5,column=6)

tt43=Entry(root)
tt43.grid(row=6,column=0)
tt44=Entry(root)
tt44.grid(row=6,column=1)
tt45=Entry(root)
tt45.grid(row=6,column=2)
tt46=Entry(root)
tt46.grid(row=6,column=3)
tt47=Entry(root)
tt47.grid(row=6,column=4)
tt48=Entry(root)
tt48.grid(row=6,column=5)
tt49=Entry(root)
tt49.grid(row=6,column=6)

tt50=Entry(root)
tt50.grid(row=7,column=0)
tt51=Entry(root)
tt51.grid(row=7,column=1)
tt52=Entry(root)
tt52.grid(row=7,column=2)
tt53=Entry(root)
tt53.grid(row=7,column=3)
tt54=Entry(root)
tt54.grid(row=7,column=4)
tt55=Entry(root)
tt55.grid(row=7,column=5)
tt56=Entry(root)
tt56.grid(row=7,column=6)

tt57=Entry(root)
tt57.grid(row=8,column=0)
tt58=Entry(root)
tt58.grid(row=8,column=1)
tt59=Entry(root)
tt59.grid(row=8,column=2)
tt60=Entry(root)
tt60.grid(row=8,column=3)
tt61=Entry(root)
tt61.grid(row=8,column=4)
tt62=Entry(root)
tt62.grid(row=8,column=5)
tt63=Entry(root)
tt63.grid(row=8,column=6)

tt64=Entry(root)
tt64.grid(row=9,column=0)
tt65=Entry(root)
tt65.grid(row=9,column=1)
tt66=Entry(root)
tt66.grid(row=9,column=2)
tt67=Entry(root)
tt67.grid(row=9,column=3)
tt68=Entry(root)
tt68.grid(row=9,column=4)
tt69=Entry(root)
tt69.grid(row=9,column=5)
tt70=Entry(root)
tt70.grid(row=9,column=6)

tt71=Entry(root)
tt71.grid(row=10,column=0)
tt72=Entry(root)
tt72.grid(row=10,column=1)
tt73=Entry(root)
tt73.grid(row=10,column=2)
tt74=Entry(root)
tt74.grid(row=10,column=3)
tt75=Entry(root)
tt75.grid(row=10,column=4)
tt76=Entry(root)
tt76.grid(row=10,column=5)
tt77=Entry(root)
tt77.grid(row=10,column=6)

tt78=Entry(root)
tt78.grid(row=11,column=0)
tt79=Entry(root)
tt79.grid(row=11,column=1)
tt80=Entry(root)
tt80.grid(row=11,column=2)
tt81=Entry(root)
tt81.grid(row=11,column=3)
tt82=Entry(root)
tt82.grid(row=11,column=4)
tt83=Entry(root)
tt83.grid(row=11,column=5)
tt84=Entry(root)
tt84.grid(row=11,column=6)

tt85=Entry(root)
tt85.grid(row=10,column=0)
tt86=Entry(root)
tt86.grid(row=10,column=1)
tt87=Entry(root)
tt87.grid(row=10,column=2)
tt88=Entry(root)
tt88.grid(row=10,column=3)
tt89=Entry(root)
tt89.grid(row=10,column=4)
tt90=Entry(root)
tt90.grid(row=10,column=5)
tt91=Entry(root)
tt91.grid(row=10,column=6)

tt92=Entry(root)
tt92.grid(row=11,column=0)
tt93=Entry(root)
tt93.grid(row=11,column=1)
tt94=Entry(root)
tt94.grid(row=11,column=2)
tt95=Entry(root)
tt95.grid(row=11,column=3)
tt96=Entry(root)
tt96.grid(row=11,column=4)

tt97=Entry(root)
tt97.grid(row=12,column=0)
tt98=Entry(root)
tt98.grid(row=12,column=1)
tt99=Entry(root)
tt99.grid(row=12,column=2)
tt100=Entry(root)
tt100.grid(row=12,column=3)
tt101=Entry(root)
tt101.grid(row=12,column=4)
tt102=Entry(root)
tt102.grid(row=12,column=5)
tt103=Entry(root)
tt103.grid(row=12,column=6)

tt104=Entry(root)
tt104.grid(row=13,column=0)
tt105=Entry(root)
tt105.grid(row=13,column=1)
tt106=Entry(root)
tt106.grid(row=13,column=2)
tt107=Entry(root)
tt107.grid(row=13,column=3)
tt108=Entry(root)
tt108.grid(row=13,column=4)
tt109=Entry(root)
tt109.grid(row=13,column=5)
tt110=Entry(root)
tt110.grid(row=13,column=6)

tt110=Entry(root)
tt110.grid(row=14,column=0)
tt111=Entry(root)
tt111.grid(row=14,column=1)
tt112=Entry(root)  
tt112.grid(row=14,column=2)
tt113=Entry(root)
tt113.grid(row=14,column=3)
tt114=Entry(root)
tt114.grid(row=14,column=4)  
tt115=Entry(root)
tt115.grid(row=14,column=5)
tt116=Entry(root)
tt116.grid(row=14,column=6)

tt117=Entry(root)
tt117.grid(row=15,column=0)
tt118=Entry(root)
tt118.grid(row=15,column=1)
tt119=Entry(root)
tt119.grid(row=15,column=2)
tt120=Entry(root) 
tt120.grid(row=15,column=3)
tt121=Entry(root)
tt121.grid(row=15,column=4)
tt122=Entry(root)
tt122.grid(row=15,column=5)
tt123=Entry(root)
tt123.grid(row=15,column=6)

tt124=Entry(root)
tt124.grid(row=16,column=0)
tt125=Entry(root)
tt125.grid(row=16,column=1)
tt126=Entry(root)
tt126.grid(row=16,column=2)
tt127=Entry(root)
tt127.grid(row=16,column=3)
tt128=Entry(root)
tt128.grid(row=16,column=4)
tt129=Entry(root)
tt129.grid(row=16,column=5)
tt130=Entry(root)
tt130.grid(row=16,column=6)
root.mainloop()

1 Ответ

0 голосов
/ 03 сентября 2018

(Проголосуйте, пожалуйста, вверх или вниз по np)

Вы имели в виду это (запустите, вы поймете):

from tkinter import *
root = Tk()
labels = [None] * 5
for i in range(len(labels)):
    text = "input "+str(i+1)
    labels[i] = Label(root,text=text)
    labels[i].grid(row=0, column=i)
qLb=Label(root,text="Answer")
qLb.grid(row=0,column=5)
tti=0 #index
tt = [None] * 130
for i in range(17):
    for n in range(6):
        tt[tti] = Entry(root)
        tt[tti].grid(row=i+1, column=n)
        tti+=1
root.mainloop()

но таблицу правды сложно составить немного. Вы должны сделать парсер, чтобы понять ввод 5. Я думаю, что ответ не должен быть Entry.

редактирование:

from tkinter import *
root = Tk()
labels = [None] * 5
for i in range(len(labels)):
    text = "input "+str(i+1)
    labels[i] = Label(root,text=text)
    labels[i].grid(row=0, column=i)
qLb=Label(root,text="Answer")
qLb.grid(row=0,column=5)
tt = [[None] * 6] * 17
for i in range(len(tt)):
    for n in range(len(tt[i])):
        tt[i][n] = Entry(root)
        tt[i][n].grid(row=i+1, column=n)
root.mainloop()

умнее. И намного проще.

#if u wanna get a input use this:
#tt[rowIndexOfInputWhatRUWant][columnIndexOfInputWhatRUWant].get()
#example:
print(tt[1][3].get())
#that means get value of entry in 2nd row,3th column
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...