【发布时间】:2020-02-27 17:12:33
【问题描述】:
我有以下示例数据
data=[(1,'JohnCena','Peter',24,74),
(2,'James','Peter',24,70),
(3,'Cena','Peter',14,64),
(14,'John','Mars',34,174)]
我想在 tkinter 输出窗口上以漂亮的表格方式在 python gui 上打印它。我正在使用tabulate 包进行打印。 这是我的功能
def display_date():
disp=pd.DataFrame(data,columns=['id','first name','last name','age','marks'])
newwin = Toplevel(right_frame)
newwin.geometry('500x400')
Label_data=Label(newwin,text=tabulate(disp, headers='keys',tablefmt='github',showindex=False))
Label_data.place(x=20,y=50)
你可以看到输出不是对称的。我想要一个漂亮的对称表格输出。我该怎么做呢
【问题讨论】:
-
尝试使用等宽字体。
Label(...,font='Consolas') -
我认为您需要一些等宽字体(意味着所有字母具有相同的宽度)来正确对齐
tabulate生成的列。例如标签内的参数font='Roboto Mono'。 -
替代设计方案:为每个单元格创建一个Entry对象,并将它们排列在一个网格中。当您拥有 GUI 时,您无需使用文本来定位数据。
标签: python user-interface tkinter label tabulate