другой компонент не отображается после того, как я показываю текст прокрутки - PullRequest
0 голосов
/ 11 октября 2019

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

from tkinter import *
import tkinter.scrolledtext as st

class Delivery(Frame):
    def __init__(self):
        Frame.__init__(self)
        self.master.title("Delivery Charges Calculator(Ong Jia Sheng)")
        self.master.geometry("700x350") #width by height dimension

        #create the components
        #create RadioButtons
        self._salute = StringVar() #common variable for Radio buttons
        self._rb1 = Radiobutton(self,text="cm",variable=self._salute,value="cm")
        self._rb2 = Radiobutton(self,text="inch",variable=self._salute,value="inch")
        self._salute.set("cm") #value of radiobutton, this is to set default selection
        #create other components

        self._lenLb = Label(self, text="Length:")
        self._widLb = Label(self, text="Width:")
        self._heiLb = Label(self, text="Height:")
        self._weiLb = Label(self, text="Weight(kg):")

        self._lenTb = Entry(self, width=25)
        self._widTb = Entry(self, width=25)
        self._heiTb = Entry(self, width=25)
        self._weiTb = Entry(self, width=25)

        self._charButt = Button(self, width=15, text="Calculate Charge",command=self.calcCharges)
        self._cleButt = Button(self, width=15,text="Clear",command=self.Clear)

        self._stxt = st.ScrolledText(self,width=700,height=5)

        #place onto the window use grid layout
        self._lenLb.grid(row=0,column=4)
        self._lenTb.grid(row=0,column=5)
        self._widLb.grid(row=1,column=4)
        self._widTb.grid(row=1,column=5)
        self._heiLb.grid(row=2,column=4)
        self._heiTb.grid(row=2,column=5)
        self._rb1.grid(row=5,column=6)
        self._rb2.grid(row=5,column=7)
        self._weiLb.grid(row=8,column=4) 
        self._weiTb.grid(row=8,column=5)

        self._charButt.grid(row=9,column=5)
        self._cleButt.grid(row=9,column=6)

        self._stxt.grid(row=9,column=0)
        self.grid()

    def calcCharges(self):
        self._salute.set("inch")
    def Clear(self):
        self._salute.set("cm")

def main():
    app = Delivery()
    app.mainloop()

main()

1 Ответ

1 голос
/ 11 октября 2019

Ширина конструктора ScrolledText выражается в символах (не в пикселях).

Поскольку он очень широкий (700 символов) и один в первом столбце, другие виджеты перемещаются далеко вправо и наружу. экран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...