Tkinter的中LabelFrame、Label和Entry

        岁月蹉跎,三周没有进展。今天终于搭建了一个初步的框架,各种百度找资料。由于参考的太多,这里就不在一一列出来了。总结起来有如下几点:

        1)对于Label,可以通过字典的方式,采用for循环比较容易多个Label,主要是不需要对其进行任何操作,因此,只需要在相应的位置产生具有一定text的Label即可。

        对于Label的字体,可以采用Style模式,该模式可以通过下面的方式来配置。而且对于不同的Widget,ttk中要增加T,如Button前增加TButton。

lab_style = ttk.Style()
lab_style.configure('TLabel', font = font_size)
par_var = [('C1', 0), 
           ('R2', 1), 
           ('C2', 2), 
           ('R3', 3), 
           ('C3', 4),
           ('icp', 5),
           ('Kvco', 6),
           ('div_N', 7)]
for name, num in par_var:
    ttk.Label(self.par_in, text = name, anchor = 'center', font = font_size, 
              width = 6).grid(column = 0, row = num, pady = 4)

         2)对于Entry采用for循环的方法没有找到,只能采取比较笨的方法一个一个来生成。确实笨死了。

        self.C1 = tk.StringVar()
        ttk.Entry(self.par_in, textvariable = self.C1, width = 16).grid(column = 1, row = 0, padx = 2)
        self.R2 = tk.StringVar()
        ttk.Entry(self.par_in, textvariable = self.R2, width = 16).grid(column = 1, row = 1, padx = 2)
        self.C2 = tk.StringVar()
        ttk.Entry(self.par_in, textvariable = self.C2, width = 16).grid(column = 1, row = 2, padx = 2)
        self.R3 = tk.StringVar()
        ttk.Entry(self.par_in, textvariable = self.R3, width = 16).grid(column = 1, row = 3, padx = 2)
        self.C3 = tk.StringVar()
        ttk.Entry(self.par_in, textvariable = self.C3, width = 16).grid(column = 1, row = 4, padx = 2)
        self.icp = tk.StringVar()
        ttk.Entry(self.par_in, textvariable = self.icp, width = 16).grid(column = 1, row = 5, padx = 2)
        self.Kvco = tk.StringVar()
        ttk.Entry(self.par_in, textvariable = self.Kvco, width = 16).grid(column = 1, row = 6, padx = 2)
        self.div_N = tk.StringVar()
        ttk.Entry(self.par_in, textvariable = self.div_N, width = 16).grid(column = 1, row = 7, padx = 2)

        3)LabelFrame的产生过程主要是参数设置,也可以采用TLabelframe的方法,但组标题没办法修改,后来找到是必须用Label来产生。上面两点都是增加在LabelFrame中的组件。

        label = ttk.Label(text = '参数输入', font = ('黑体', font_size))
        # 定义输入参数
        self.par_in = ttk.LabelFrame(self, labelanchor = 'n', labelwidget = label)
        self.par_in.grid(column = 0, row = 0, columnspan = 2, padx = 10, pady = 10)

        4)一个比较奇怪的问题是,由于设置了一个变量font_size,结果在Label的font设置就出现异常。主要表现为在Label中设置font参数,无论设置的值是多少,都不影响实际字体大小。但如果把该参数去掉,则font会变成原来的默认值,很小。具体原因没有找到。尝试了多次,结果还是异常。

        5)在Lable中增加一个图片。下面代码中开始的时候,第四行定义时直接使用image变量,结果图片总是不显示,增加self.image后才可以显示。

        label = ttk.Label(text = 'CPPLL示意图', font = ('黑体', 14))
        self.cppll_image = ttk.LabelFrame(self, labelanchor = 'n', labelwidget = label)
        self.cppll_image.grid(column = 2, row = 0, padx = 10, pady = 10)
        self.image = tk.PhotoImage(file = 'CPPLL_small.png')
        photo_lab = ttk.Label(self.cppll_image, image = self.image)
        photo_lab.pack()

最终结果如下图所示。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值