Как получить определенную локальную переменную в combobox в качестве значений в python?

#python #function #tkinter #combobox #local-variables

#python #функция #tkinter #combobox #локальные переменные

Вопрос:

Я работаю над проектом, в котором мне требуется определенная функциональная переменная (локальная переменная) в значениях Combobox, но это дает мне ошибку неопределенной переменной. И я не могу изменить шаблон моего скрипта python, иначе скрипт будет перепутан и выдаст другую ошибку.

Пожалуйста, помогите мне решить проблему, не меняя шаблон сценария.

Вот мой код:-

 book= ''
pages = 1
page_no = 1
pdfReader=''
def selectBtnClicked():
    # pass
    global book
    global PDFFILE
    global pages
    global page_no
    global pdfReader
    print(PDFFILE)
    # PDFFILE1=pdf_btnClicked()
    book = open(PDFFILE, 'rb')
    pdfReader = PyPDF2.PdfFileReader(book)
    pages = pdfReader.numPages
    print(pages)
    pages  = 1
    page_no = [i for i in range(1, pages)]
    print(page_no)
    return page_no, pdfReader

#start from
style = ttk.Style()
style.theme_use("default")
style.map('TCombobox', fieldbackground=[('readonly','red')])
style.map('TCombobox', selectbackground=[('readonly', 'red')])
style.map('TCombobox', selectforeground=[('readonly', 'white')])
n= tk.StringVar(value="---STARTING PAGE---")
n.set("---STARTING PAGE---")
startfromLabel = ttk.Combobox(root, font=font, justify='center', textvariable=n)
startfromLabel["values"]= page_no
# pages_nos()
startfromLabel["state"] = "readonly"
startfromLabel.bind('<<ComboboxSelected>>')
startfromLabel.current()
startfromLabel["foreground"] = '#ffffff'
startfromLabel.pack(side=TOP, pady=30)
  
root.mainloop()
  

Мне нужно page_no как значение startfromLabel, но я не получаю значения в моем выводе GUI:

введите описание изображения здесь

Комментарии:

1. Пожалуйста, опубликуйте полный код ошибки

2. Я отредактировал свой код и загрузил свой полный код

3. В чем ошибка? Вы все еще не упомянули о полученной ошибке.

4. Попробуйте также сказать startfromLabel["values"] = page_no внутри функции

5. хорошо, сэр, у меня был ответ upvote, и я снова очень благодарен вам за решение моей проблемы.

Ответ №1:

Вы не говорите, чтобы изменить values внутреннюю функцию, так сказать:

 def selectBtnClicked():
    .... #same bunch of code
 
    startfromLabel["values"] = page_no
    .... #remaining bunch of code