繁体   English   中英

GUI-Tkinter-Python 程序

[英]GUI-Tkinter-Python Program

如何创建一个按钮来打开一个打印所有记录的新窗口。 在程序的以下部分中,我无法在新窗口中打印记录,但它会在已创建的窗口中打印并且新窗口保持为空。 这是程序的一小部分:-

    root = Tk()
    def query():
      query = Tk()
      query.title('Records')
      query.iconbitmap(r'C:\Users\pankaj\Downloads\Elegantthemes-Beautiful-Flat-Document.ico')
      query.geometry("450x350")

    #Create a database or connect to one
    conn = sqlite3.connect('Payslip.db')
    # Create cursor
    c = conn.cursor()
    #Query the database
    c.execute("SELECT *,oid from Payslip")
    records = c.fetchall()
    #print(records)# to print in the background

    #Loop the results
    print_records = ''
    for record in records: #to show the records
      print_records += str(record[0]) +"\t" + str(record[8])+ "\n"# \t to give space(tab) between them
    query_label = Label(root, text=print_records)
    query_label.grid(row=14, column=0, columnspan=2)

    #Commit Change
    conn.commit()
    # Close Connection
    conn.close()  
  
  #create a Query button
  query_btn = Button(root, text="Show Records", command=query)
  query_btn.grid(row=9,column=0, columnspan=2, pady=10, padx=10, ipadx=135)

那么,你要打印在query_label,您分配到窗口print_records:

查询标签 = 标签(,文本=print_records)

你说你创建了一个新窗口,但我在代码中看不到它,所以你可能想要做这样的事情:

def query():
    top1 = Toplevel() # creates new window called top1
    print_records = ''
    for record in records: #to show the records
        print_records += str(record[0]) +"\t" + str(record[8])+ "\n"
    query_label = Label(top1, text=print_records) # now the query_label is assigned to top1
    query_label.grid(row=14, column=0, columnspan=2)

但是你想这样做:

query_label = Label( NEW_WINDOW , text=print_records)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM