Tkinter标签动态配置

时间:2020-06-08 02:42:22

标签: python tkinter

我想要动态的lable.config吗?因为结果与屏幕尺寸不符,其余文本被截断并且看不到。这是代码。我知道我的代码无效,但是我是一个初学者,我不知道并且不了解python中的GUI

def link_GUI(graph):
    def btn_click():
        data1 = str(txtDataEntry.get())  # get data from test box
        data2 = str(txtDataEntry2.get())
        r_edge = link(graph, data1, data2)
        lblResult.config(text="" + data1 + " and " + data2 + " are linked")
        lblResult2.config(text="" + str(r_edge))
    root = Tk()
    root.title("SSM Application")
    root.geometry("1500x600")
    lblTitle = Label(text=" Link a station to another station", font=('arial', 20, 'bold'), fg='Black')
    lblTitle.pack()
    lblTitle = Label(text=" *Close the box to choose another option*  ", font=('arial', 10, 'bold'), fg='Black')
    lblTitle.pack()
    frame1 = Frame()

    lblDataentry = Label(frame1, text="Enter first station name:", pady=1, fg='black')  # 1111111111111111
    lblDataentry.grid(row=0, column=0)
    txtDataEntry = Entry(frame1)  # 111111111111111
    txtDataEntry.grid(row=0, column=1)
    lblDataentry = Label(frame1, text="Enter second station name:", pady=1, fg='black')  # 2222222222222
    lblDataentry.grid(row=1, column=0)
    txtDataEntry2 = Entry(frame1)  # 222222222222222
    txtDataEntry2.grid(row=1, column=1)
    btnSubmit = Button(frame1, text="Link", bg='grey', fg='black', command=btn_click)
    btnSubmit.grid(row=2, column=1)
    frame1.pack()  # add frame to gui
    lblResult = Label(font=('arial', 18, 'bold'), fg='darkblue')
    lblResult.pack()
    lblResult2 = Label(font=('arial', 18, 'bold'), fg='darkblue')
    lblResult2.pack()
    root.mainloop()

原始输出结果 1:https://i.stack.imgur.com/ErzL6.png

尝试包裹长度后,这里是结果,但是它也无济于事吗?

https://i.stack.imgur.com/J3eBd.png

1 个答案:

答案 0 :(得分:0)

  1. root.geometry("1500x600")更改为root.minsize(1500, 600),以扩展根窗口。

  2. lblResult2.pack()更改为lblResult2.pack(fill="both", expand=1),以便lblResult2将填充根窗口宽度并调整根窗口高度,以显示其所有内容。

  3. lblResult2.config(text=""+str(r_edge))更改为lblResult2.config(text=str(r_edget), wraplength=lblResult2.winfo_width(), justify='left'),以包装其内容以适合其宽度。

编辑: 另一种解决方案是使用Text小部件而不是Label

  1. 更改以下几行

    lblResult2 = Label(font=('arial', 18, 'bold'), fg='darkblue')
    lblResult2.pack()
    

    txtResult2 = Text(font=('arial', 18, 'bold'), fg='darkblue')
    txtResult2.pack(fill='both', expand=1)
    
  2. 更改btn_click()中的以下行:

    lblResult2.config(text=""+str(r_edge))
    

    txtResult2.delete(1.0, 'end')
    txtResult2.insert('end', str(r_edge))