【问题标题】:other component not showing after I show the scrolltext显示滚动文本后其他组件未显示
【发布时间】:2019-10-11 22:26:35
【问题描述】:

我正在做一个项目来计算不同重量包裹的费用。但是,组件(标签、按钮、文本框和滚动文本)的位置并没有按照我想要的方式放置。 我希望长度标签位于中心顶部,长度文本框位于其旁边。类似于宽度标签和高度标签。 以下是我的代码。

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()

【问题讨论】:

    标签: python tkinter grid


    【解决方案1】:

    ScrolledText 构造函数的宽度以字符表示(不是像素)。

    由于它非常宽(700 个字符)并且单独位于第一列中,因此其他小部件被移到屏幕右侧很远的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      • 2020-09-16
      • 2018-01-29
      • 2020-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多