请问:怎么修改,打印的字符串才是我想要的间距?
from tkinter import *root = Tk("1500x1500")
root.title('2116')
Label(root, text='整理号:').grid(row=0, column=0)
Label(root, text='C-No:').grid(row=0, column=1)
Label(root, text='订货单位:').grid(row=0, column=2)
Label(root, text='科名:').grid(row=0, column=3)
Label(root, text='委托人:').grid(row=0, column=4)
Label(root, text='委托年、月、日:').grid(row=0, column=5)
e1 = Entry(root)
e2 = Entry(root)
e3 = Entry(root)
e4 = Entry(root)
e5 = Entry(root)
e6 = Entry(root)
e1.grid(row=1, column=0, padx=0, pady=0)
e2.grid(row=1, column=1, padx=0, pady=0)
e3.grid(row=1, column=2, padx=0, pady=0)
e4.grid(row=1, column=3, padx=0, pady=0)
e5.grid(row=1, column=4, padx=0, pady=0)
e6.grid(row=1, column=5, padx=0, pady=0)
def show():# 当输入内容时点击获取信息会打印
print('1'.rjust(2), end='')# 卡片1
print('%s'.ljust(4) % e1.get(), end='')# 整理号
print('%s'.ljust(16) % e2.get(), end='')# C-No
print('%s'.ljust(30) % e3.get(), end='')# 订货单位
print('%s'.ljust(6) % e4.get(), end='')# 科名
print('%s'.ljust(14) % e5.get(), end='')# 委托人
print('%s'.ljust(8) % e6.get())# 委托年、月、日
Button(root, text='获取信息', width=10, command=show) \
\
.grid(row=3, column=0, sticky=W, padx=10, pady=5)
mainloop()
输入:
2021 C2209JD liyang CPEPE- Y-Y-X 21-07-21
输出结果:
12021C2209JD liyang CPEPE- Y-Y-X 21-07-21
我想要的结果:
12021C2209JD liyang CPEPE-Y-Y-X 21-07-21
初学小白希望各位大佬不吝赐教~ # 整理号:2021
# C-No:C2209JD
# 订货单位:liyang
# 科名:CPEPE-
# 委托人:Y-Y-X
# 委托年、月、日:21-07-21 本帖最后由 xiaosi4081 于 2021-7-21 17:14 编辑
可以直接用1个print 函数输出:
print(arg1,arg2,....,sep="用什么分隔开两个值")
也可以加空格解决
也可以将编辑器的字体设置为等宽字体Consola
参考代码:
from tkinter import *
root = Tk("1500x1500")
root.title('2116')
Label(root, text='整理号:').grid(row=0, column=0)
Label(root, text='C-No:').grid(row=0, column=1)
Label(root, text='订货单位:').grid(row=0, column=2)
Label(root, text='科名:').grid(row=0, column=3)
Label(root, text='委托人:').grid(row=0, column=4)
Label(root, text='委托年、月、日:').grid(row=0, column=5)
e1 = Entry(root)
e2 = Entry(root)
e3 = Entry(root)
e4 = Entry(root)
e5 = Entry(root)
e6 = Entry(root)
e1.grid(row=1, column=0, padx=0, pady=0)
e2.grid(row=1, column=1, padx=0, pady=0)
e3.grid(row=1, column=2, padx=0, pady=0)
e4.grid(row=1, column=3, padx=0, pady=0)
e5.grid(row=1, column=4, padx=0, pady=0)
e6.grid(row=1, column=5, padx=0, pady=0)
def show():# 当输入内容时点击获取信息会打印
print(e1.get(),e2.get()," ",e3.get()," ",e4.get(),e5.get()," ",e6.get())
Button(root, text='获取信息', width=10, command=show) \
\
.grid(row=3, column=0, sticky=W, padx=10, pady=5)
mainloop()
xiaosi4081 发表于 2021-7-21 17:09
可以直接用1个print 函数输出:
也可以加空格解决
谢谢,明白你的意思了。ljust()在这里面不起作用 我是小树啦 发表于 2021-7-21 17:18
谢谢,明白你的意思了。ljust()在这里面不起作用
能不能设置最佳?{:10_254:} xiaosi4081 发表于 2021-7-21 17:09
可以直接用1个print 函数输出:
也可以加空格解决
手动加空格看似可以解决问题,我实际是想要以下打印代码的效果:
print('1'.rjust(2), end='')# 卡片1
print('2021'.ljust(4), end='')# 整理号
print('C2209JD'.ljust(16), end='')# C-No
print('liyang'.ljust(30), end='')# 订货单位
print('CPEPE-'.ljust(6), end='')# 科名
print('Y-Y-X'.ljust(14), end='')# 委托人
print('21-07-21'.ljust(8))# 委托年、月、日
也就是:保证”整理号“在第3~第6格之间,”C-No“在第7~20格之间,”订货单位“在第23~第52格之间。。。。。。
手动添加空格,下次改变输入的内容,位置又跑掉了。 我是小树啦 发表于 2021-7-21 17:24
手动加空格看似可以解决问题,我实际是想要以下打印代码的效果:
也就是:保证”整理号“在第3~第6格 ...
这几个值有没有限定的位数? 我是小树啦 发表于 2021-7-21 17:24
手动加空格看似可以解决问题,我实际是想要以下打印代码的效果:
也就是:保证”整理号“在第3~第6格 ...
有没有别的例子? xiaosi4081 发表于 2021-7-21 17:26
这几个值有没有限定的位数?
不好意思回复慢了,问题也可以这样描述就容易理解:“整理号”长度必定<4,但是一定占4个格子;“C-No”长度必定<16,但是一定占16个格子,并接在“整理号”占掉的格子后面;“订货单位”长度必定<30,但一定占30个格子,接在上一个占掉的格子后面。。。。依次类推 我是小树啦 发表于 2021-7-21 17:51
不好意思回复慢了,问题也可以这样描述就容易理解:“整理号”长度必定<4,但是一定占4个格子;“C-No” ...
print("1","%4s"%e1.get(),"%16s"%e2.get(),"%30s"%e3.get(),"%6s"%e4.get(),"%14s"%e5.get(),"%8s"%e6.get(),sep="")
页:
[1]