tkinter beberapa tombol radio

Saya memiliki 2 set tombol radio untuk dipilih, jika saya memilih salah satu dari set kedua, tombol yang dipilih pada set pertama akan dibatalkan pilihannya, meskipun fungsi terkait masih berfungsi. Berikut contoh dan kodenya

Untuk “Butuh Nomor Tertentu?” (radio 1 dan radio 2) dan “Ingin Mengirim email dengan alamat email berbeda?” (radio 5 dan radio 6), saya hanya dapat memilih 1 saja. misalnya jika saya memilih radio 1, lalu memilih radio 5 atau radio 6, radio 1 tidak dipilih. Saya tidak yakin di mana kesalahan saya. Bisakah Anda menunjukkan cara yang benar? Ini kode saya

from tkinter import *
from tkinter import messagebox
from tkinter.ttk import *
root = Tk()
def guiUDP():
    def enableSPNum() :
        entry5.configure(state = 'normal')
    def disableSPNum() :
        entry5.configure(state = 'disabled')
    def diffEmail() :
        entry8.configure(state = 'normal')
    def defaultEmail() :
        entry8.configure(state = 'disabled')
    def submitReq() :        
        userID = entry1.get()
        siteCode = entry2.get().upper()
        firstName = entry3.get().title()
        lastName = entry4.get().upper()
        spNum = entry5.get()
        vmEnable = select1.get()
        agentID = entry7.get().lower()
        eMail = entry8.get()
    entry1 = Entry(root)
    entry1.grid(column = 1, row = 0)
    label1 = Label(root, text = 'userID : ')
    label1.grid(column = 0, row = 0, sticky = E)

    entry2 = Entry(root)
    entry2.grid(column = 1, row = 1)
    label2 = Label(root, text = 'Site Code :')
    label2.grid(column = 0, row = 1, sticky = E)

    entry3 = Entry(root)
    entry3.grid(column = 1, row = 2)
    label3 = Label(root, text = 'First Name :')
    label3.grid(column = 0, row = 2, sticky = E)

    entry4 = Entry(root)
    entry4.grid(column = 1, row = 3)
    label4 = Label(root, text = 'Last Name :')
    label4.grid(column = 0, row = 3, sticky = E)

    #selected = IntVar()
    label5 = Label(root, text = 'Need Specific Number? :')
    label5.grid(column = 0, row = 4, sticky = E)

    rad1 = Radiobutton(root,text='Yes', value = 1, command = enableSPNum)
    rad2 = Radiobutton(root,text='No (Default)', value = 2, command = disableSPNum)
    rad1.grid(column = 1, row = 4)
    rad2.grid(column = 2, row = 4)

    entry5 = Entry(root, state = 'disabled')
    entry5.grid(column = 1, row = 6)
    label6 = Label(root, text = 'Extension :')
    label6.grid(column = 0, row = 6, sticky = E)

    label7 = Label(root, text = 'Voicemail Required? :')
    label7.grid(column = 0, row = 7, sticky = E)

    select1 = IntVar()
    rad3 = Radiobutton(root,text='Yes', value = 3, variable = select1)
    rad4 = Radiobutton(root,text='No', value = 4, variable=select1)
    rad3.grid(column = 1, row = 7)
    rad4.grid(column = 2, row = 7)

    entry7 = Entry(root)
    entry7.grid(column = 1, row = 8)
    label8 = Label(root, text = 'Your userID :')
    label8.grid(column = 0, row = 8, sticky = E)

    label9 = Label(root, text = 'Want to send email with differnt email adrress? :')
    label9.grid(column = 0, row = 9, sticky = E)

    #selected = IntVar()
    rad5 = Radiobutton(root,text='Yes', value = 5, command = diffEmail)
    rad6 = Radiobutton(root,text='No', value = 6, command = defaultEmail)
    rad5.grid(column = 1, row = 9)
    rad6.grid(column = 2, row = 9)

    entry8 = Entry(root, state = 'disabled')
    entry8.grid(column = 1, row = 10)
    label10 = Label(root, text = 'Full Email Address :')
    label10.grid(column = 0, row = 10, sticky = E)

    btn = Button(root, text = 'Submit', command = submitReq)
    btn.grid(column = 2, row = 20)



mainMenu = Menu(root)
root.configure(menu=mainMenu)
guiMenu = Menu(mainMenu, tearoff = 0)
mainMenu.add_cascade(label = 'TEST', menu=guiMenu)
guiMenu.add_command(label = 'TEST', command = guiUDP)
root.mainloop()
root.geometry('600x600')

person chun xu    schedule 11.11.2018    source sumber
comment
Lekukan dalam kode rusak. Silakan coba memperbaikinya.   -  person Bryan Oakley    schedule 12.11.2018
comment
Hai Bryan, kode telah diubah   -  person chun xu    schedule 12.11.2018


Jawaban (1)


Anda belum menetapkan variabel ke baris pertama dan ketiga tombol radio. Jika saya menginterogasi tombol radio tanpa variabel, mereka mengatakan bahwa tombol tersebut terikat ke selectedButton, yang sama untuk semuanya. Saya kira ini adalah semacam perilaku default ketika variabel hilang. Jika Anda membuat variabel untuk setiap baris tombol radio terkait dan menetapkannya ke variabel tersebut, efeknya akan hilang.

person figbeam    schedule 12.11.2018