maxliu06 发表于 2020-6-9 10:00:03

Label 可以分行显示结果吗??

如题,,


我从数据库 得到一个结果 ,

结果 是一个元组,   元组元素是由列表组成

我想在标签中,一个列表,在标签中显示一行。


这个要怎么弄?

Twilight6 发表于 2020-6-9 10:02:22

所要显示的文本属性里需要换行的地方加一个 \n 即可

maxliu06 发表于 2020-6-9 10:08:45

Twilight6 发表于 2020-6-9 10:02
所要显示的文本属性里需要换行的地方加一个 \n 即可

这怎么加。。。?
比如
我的元组 是这样 ss = (,['a','b','c','d','e','f','g'])
我想在Label中显示 出来的结果是

1 2 3 4 5 6 7
a b c d e f g

Twilight6 发表于 2020-6-9 10:17:13

maxliu06 发表于 2020-6-9 10:08
这怎么加。。。?
比如
我的元组 是这样 ss = (,['a','b','c','d','e','f','g'])


from tkinter import *


root = Tk()

ss = (,['a','b','c','d','e','f','g'])

v = StringVar()

label = Label(root,textvariable=v)
label.pack()

def show():
    v.set('{} {} {} {} {} {} {}\n{} {} {} {} {} {} {}'.format(*ss+ss))

button = Button(root,text='搜索',command=show)
button.pack()

mainloop()

maxliu06 发表于 2020-6-9 10:22:41

Twilight6 发表于 2020-6-9 10:17


.format(*ss+ss)   还有这种骚操作的?~{:5_109:}

Twilight6 发表于 2020-6-9 10:23:39

maxliu06 发表于 2020-6-9 10:22
.format(*ss+ss)   还有这种骚操作的?~

解包 蛤~,不解也可以只不过代码要写长点

ss,ss。。。。这样一直下去

maxliu06 发表于 2020-6-9 10:32:30

Twilight6 发表于 2020-6-9 10:17


v.set可以再加左对齐吗?

Twilight6 发表于 2020-6-9 10:35:54

maxliu06 发表于 2020-6-9 10:32
v.set可以再加左对齐吗?

应该只能用 pick anchor参数设置为W或者 gird stick 设置为 W吧

maxliu06 发表于 2020-6-9 10:51:07

本帖最后由 maxliu06 于 2020-6-9 10:52 编辑

Twilight6 发表于 2020-6-9 10:35
应该只能用 pick anchor参数设置为W或者 gird stick 设置为 W吧

from tkinter import *


root = Tk()

ss = (['1swererw',2,3,4,5,6,7],['a','b','c','d','e','f','g'])

v = StringVar()

label = Label(root,textvariable=v,justify=LEFT)
label.pack()

def show():
    v.set('{} {} {} {} {} {} {}\n{} {} {} {} {} {} {}'.format(*ss+ss))

button = Button(root,text='搜索',command=show)
button.pack()

mainloop()





label这里 加上   justify=LEFT可以实现 左对齐





可是,我在我的源中加上justify 属性时, 却报错的。。
show_label = tk.Label(self.face1, textvariable=show_var,justify=LEFT)
NameError: name 'LEFT' is not defined

Twilight6 发表于 2020-6-9 10:53:15

maxliu06 发表于 2020-6-9 10:51
label这里 加上   justify=LEFT可以实现 左对齐




你要加上 tk.LEFT

maxliu06 发表于 2020-6-9 10:57:15

root = Tk()

ss = (['1swererw',2,3,4,5,6,7],['a','b','c','d','e','f','g'])

v = StringVar()

label = Label(root,textvariable=v,justify=LEFT)
label.place(x=30, y=60)

def show():
    v.set('{} {} {} {} {} {} {}\n{} {} {} {} {} {} {}'.format(*ss+ss))

button = Button(root,text='搜索',command=show)
button.place(x=40,y=10)

mainloop()


用place也可以在 Label 中 添加 justify的属性。

想不明白我源码中却提示 'LEFT' is not defined

maxliu06 发表于 2020-6-9 10:58:09

Twilight6 发表于 2020-6-9 10:53
你要加上 tk.LEFT

{:5_109:}可以了。 万分感谢

Twilight6 发表于 2020-6-9 10:58:36

maxliu06 发表于 2020-6-9 10:58
可以了。 万分感谢

没事~工作辛苦了!

maxliu06 发表于 2020-6-9 11:23:12

Twilight6 发表于 2020-6-9 10:58
没事~工作辛苦了!

{:5_101:}大侠,我又遇上难题了。。。


在标签显示的结果中, 如果还想进行列的对齐 ,,这个有什么方法吗?

maxliu06 发表于 2020-6-9 11:24:25

maxliu06 发表于 2020-6-9 11:23
大侠,我又遇上难题了。。。




单纯的靠在结果中,自己拼空格,不是办法。。

Twilight6 发表于 2020-6-9 11:38:07

maxliu06 发表于 2020-6-9 11:24
单纯的靠在结果中,自己拼空格,不是办法。。

v.set('{:^10} {:^10} {:^10} {:^10} {:^10} {:^10} {:^10}\n{:^10} {:^10} {:^10} {:^10} {:^10} {:^10} {:^10}'.format(*ss+ss))

怎么居中对齐你自己调整~
页: [1]
查看完整版本: Label 可以分行显示结果吗??