Форматирование списков в столбцы - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь разделить столбцы следующим образом:

ID    Username    Password    Clearance    Class
1     foo         bar         Admin        True
etc   etc         etc         etc          etc

с использованием метода "{0:> 8}". Формата (* i)

печать на консоль работаети форматирование в порядке, но когда я передаю текст во всплывающее окно, которое я использую для отображения результатов поиска, форматирование выглядит примерно так:

ID    Username    Password    Clearance    Class
 1     foo    bar      Admin   False

вот код:

from tkinter.messagebox import showinfo

User_List = [["foo","bar","admin","true"],["fa","lo","user","false"]]

def Main():
    Display_Text_List = [["Index","Username","Password","Clearance","Class"]]
    for Count,Sub_List in enumerate(User_List):
        ID = str(Count+1)
        Username = Sub_List[0]
        Password = Sub_List[1]
        Clearance = Sub_List[2]
        Class = Sub_List[3]
        Display_Text_List.append([ID,Username,Password,Clearance,Class])
    Display_Text = Column_Format(Display_Text_List)
    print("Display_Text :\n")
    print(Display_Text)
    Popup_Show_Info(Display_Text)

def Popup_Show_Info(text):
    showinfo("Window", text)

def Column_Format(List):
    Text = ""
    print("LIST:",List)
    for i in List:
        print("i:",i)
        Text_Extension = "{0:>8} {1:>12} {2:>12} {3:>12} {4:>10}".format(*i)
        Text += Text_Extension+"\n"
    return Text

if __name__ == "__main__":
    Main()

1 Ответ

0 голосов
/ 03 февраля 2019

Вам нужно добавить некоторые параметры в корень.Чтобы ваш пример работал, добавьте его в начало:

import tkinter
r = tkinter.Tk()
r.option_add('*Dialog.msg.font', 'Courier') # set the font for dialog boxes
r.option_add('*Dialog.msg.wrapLength', '800') # set the max width of dialog boxes
r.withdraw() # Hide the main window

В вашей реальной программе вы должны использовать корневое окно вместо «r».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...