संपादित करें: मैंने इसे एक सुझाव के आधार पर संपादित करने का प्रयास किया कि इसे किसी फ़ंक्शन से जोड़ा जाना चाहिए। लेकिन फिर भी ठीक से काम नहीं कर रहा है। आपका बहुत बहुत धन्यवाद!

क्या आपसे मुझे मदद मिल सकती है। संबंधित प्रश्न देखे लेकिन बिल्कुल वही नहीं। आपका बहुत बहुत धन्यवाद!

मेरे पास एक रेडियो बटन है। चयनित मान के आधार पर, बटनों की संख्या बदल जाएगी। हालाँकि, बटनों की संख्या नहीं बदलती है। संख्या केवल रेडियोधटन के डिफ़ॉल्ट मान पर आधारित है (मैंने इसे बदलने की कोशिश की)।

import tkinter
from tkinter import *

root = Tk()

TIME_SUBFRAME = root


#dont mind much this part, this is just the popup window that will show after I click the buttons dependent on the radiobutton
def month():
    CAL_WINDOW = Toplevel(TIME_SUBFRAME) #other parts removed


#this is the part that I would want to be dependent on the radiobutton
ONLY_MONTH = Button(TIME_SUBFRAME, text='Month', command=month)
START_MONTH = Button(TIME_SUBFRAME, text='Start Month', command=month)
END_MONTH = Button(TIME_SUBFRAME, text='End Month', command=month)

def sing_month():
    START_MONTH.destroy()
    END_MONTH.destroy()
    ONLY_MONTH.grid(row = 3, column = 2, columnspan = 2)

def mult_month():
    ONLY_MONTH.destroy()
    START_MONTH.grid(row = 3, column = 2)
    END_MONTH.grid(row = 3, column = 3)


#Radiobuttons for timepoint selection type
YRTYPE = IntVar(TIME_SUBFRAME, 1) 
SING_MONTH = Radiobutton(TIME_SUBFRAME, text = "Single Month", command = sing_month, variable = YRTYPE, value = 1)
MULT_MONTH = Radiobutton(TIME_SUBFRAME, text = "Multiple Months", command = mult_month, variable = YRTYPE, value = 2)
SING_MONTH.grid(row = 2, column = 2, padx = 10, pady = 10)
MULT_MONTH.grid(row = 2, column = 3, padx = 10, pady = 10)

root.mainloop()
0
ambmil 27 पद 2019, 15:31

1 उत्तर

सबसे बढ़िया उत्तर

जब किसी फ़ंक्शन को कॉल किया जाता है तो रेडियोबटन नंबरों को उनके मूल्य की जांच करने की आवश्यकता होती है। आपने वर्तमान चल रहे ब्लॉक में चेकिंग स्टेटमेंट घोषित किया है, जो आपके रेडियोबटन का प्रारंभिक मूल्य लौटाएगा।

जब उपयोगकर्ता रेडियोबटन की जांच करता है तो मूल्यों की जांच करने की आवश्यकता होती है। इसलिए, हमें एक फ़ंक्शन के साथ कमांड किए गए एक अतिरिक्त बटन विजेट की आवश्यकता होती है जो दोनों रेडियोबटन के मूल्य की जांच करता है और संबंधित क्रियाएं करता है।

रेडियोबूटन स्वचालित रूप से मूल्यों की जांच नहीं करेगा, इसे फ़ंक्शन द्वारा जांचने की आवश्यकता है।

यहाँ आपका समाधान है,

import tkinter
from tkinter import *

root = Tk()

TIME_SUBFRAME = root


#dont mind much this part, this is just the popup window that will show after I click the buttons dependent on the radiobutton
def month():
    CAL_WINDOW = Toplevel(TIME_SUBFRAME) #other parts removed


#this is the part that I would want to be dependent on the radiobutton
ONLY_MONTH = Button(TIME_SUBFRAME, text='Month', command=month)
START_MONTH = Button(TIME_SUBFRAME, text='Start Month', command=month)
END_MONTH = Button(TIME_SUBFRAME, text='End Month', command=month)

def sing_month():
        START_MONTH.grid_remove()
        END_MONTH.grid_remove()
        ONLY_MONTH.grid(row = 3, column = 2, columnspan = 2)

def mult_month():
        ONLY_MONTH.grid_remove()
        START_MONTH.grid(row = 3, column = 2)
        END_MONTH.grid(row = 3, column = 3)



#Radiobuttons for timepoint selection type
YRTYPE = IntVar(TIME_SUBFRAME, 1) 
SING_MONTH = Radiobutton(TIME_SUBFRAME, text = "Single Month", command = sing_month, variable = YRTYPE, value = 1)
MULT_MONTH = Radiobutton(TIME_SUBFRAME, text = "Multiple Months", command = mult_month, variable = YRTYPE, value = 2)
SING_MONTH.grid(row = 2, column = 2, padx = 10, pady = 10)
MULT_MONTH.grid(row = 2, column = 3, padx = 10, pady = 10)

root.mainloop()
1
Divyesh Mehta 28 पद 2019, 14:46