如何将已定义的局部变量作为python中的值获取到组合框?

问题描述

我正在一个项目中,我需要在组合框的值中定义函数变量(局部变量),但这给我未定义变量错误。而且我无法更改我的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',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输出中没有这些值:

enter image description here

解决方法

您不告诉您要更改函数内的values,所以说:

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