繁体   English   中英

Tkinter 按钮在 ttk.text 下显示中心

[英]Tkinter button displays center under a ttk.text

我有一个我正在为自己创建的小记事本。 但是,在“疑难解答步骤”一节中,我有一个 TTK.text 是一个宽列。 现在我需要在下面添加两个按钮。 “保存”和“清除” “保存”按钮显示在文本框下方的中心。 (预期)但是当我尝试在“保存”旁边添加“清除”时,它会以与右侧不同的列方式显示。

这是下面的代码。

from tkinter import *
from tkinter import ttk
from tkinter import Text

class Example(Frame):

    def __init__(self):
        super().__init__()

        self.initUI()
        


    def initUI(self):

        self.master.title("Inbound Mail")
        self.pack(fill=BOTH, expand=True)

        frame = LabelFrame(self, text = "CUSTOMER INFORMTION ")
        frame.grid(row =0, column = 0, pady = 20, padx = 10)

        case_number = Label(frame, text = "Case Number ")
        case_number.grid(row = 0, column = 0, pady = 3, padx = 3)

        self.case_entry = Entry(frame, width  = 30)
        self.case_entry.grid(row = 0, column = 1, pady = 5)


        customer_name = Label(frame, text = "Contact Name ")
        customer_name.grid(row =1, column = 0, pady = 3, padx = 3)

        self.name_entry = Entry(frame, width  = 30)
        self.name_entry.grid(row = 1, column = 1)



        customer_phone = Label(frame, text = "Phone Number ")
        customer_phone.grid(row =2, column = 0, pady = 3, padx = 3)

        self.phone_entry = Entry(frame, width  = 30)
        self.phone_entry.grid(row = 2, column = 1)

        customer_email = Label(frame, text = "Email Address ")
        customer_email.grid(row =3, column = 0, pady = 3, padx = 3)

        self.email_entry = Entry(frame, width  = 30)
        self.email_entry.grid(row = 3, column = 1)


        Label(frame, text = "Product").grid(row = 4, column = 0, pady = 3, padx = 3)
        self.product = ttk.Combobox(frame, 
                                values = [
                                        "1",
                                        "2",
                                        "3",
                                        "4",
                                        "5",
                                        "6",
                                        "7",
                                        "8"], width = 27)
        self.product.grid(row = 4, column = 1, pady = 3, padx = 3)
        self.product.current(0)


        #ISSUE DESCRIPTION 

        frame2  = LabelFrame(self, text = "ISSUE")
        frame2.grid(row = 5 , column = 0, pady = 20, padx = 10)
    
        Label(frame2, text = "ISSUE DESCRIPTION").grid(row = 6, column = 0, pady = 3, padx = 3)
        self.issue = Entry(frame2, width = 55)
        self.issue.grid(row = 7, column = 0, pady = 3, padx = 3)


        # TROUBLESHOOTING STEPS

        frame3 = LabelFrame(self, text = "TROUBLESHOOTING STEPS")
        frame3.grid(row = 8, column = 0)

        self.troubles = Text(frame3, height = 15, width = 40, wrap = WORD)
        self.troubles.grid(row = 9, column = 0,padx = 10, pady = 10)

        #SCROLLBAR FOR TEXT

        scroll = Scrollbar(self, command = self.troubles.yview)
        scroll.grid(row = 8, column = 1, sticky = "nsew")
        self.troubles.config(yscrollcommand = scroll.set)

        #SAVE BUTTON AND CLEAR BUTTON. 

        self.save = Button(frame3, text = "Save")
        self.save.grid(row = 10, column = 0)

def main():

    root = Tk()
    app = Example()
    root.geometry("380x650")
    # root.resizable(False, False)
    root.mainloop()


if __name__ == '__main__':
    main()

制作另一个小框架作为按钮的容器。 您可能还想知道滚动文本小部件是标准 tkinter 的一部分,您不必重新发明它。 只需添加此导入:

from tkinter.scrolledtext import ScrolledText

进而:

# TROUBLESHOOTING STEPS

frame3 = LabelFrame(self, text = "TROUBLESHOOTING STEPS")
frame3.grid(row = 8, column = 0)

self.troubles = ScrolledText(frame3, height = 15, width = 40, wrap = WORD)
self.troubles.grid(row = 9, column = 0,padx = 10, pady = 10)

#SAVE BUTTON AND CLEAR BUTTON.
buttonframe = Frame(frame3)
buttonframe.grid(row = 10, column = 0)
self.save = Button(buttonframe, text = "Save")
self.save.pack(side=LEFT)
self.clear = Button(buttonframe, text = "Clear")
self.clear.pack(side=LEFT)

暂无
暂无

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

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