вывод вывода tkinter в окне сообщения

Я хотел бы отобразить результат записи, которую я спросил. Мне удалось отобразить результат в консоли, но не сообщение, открытое tkMessageBox.showinfo. Вместо этого я получаю несколько числовых значений. что довольно странно, так как

Ниже мой код.

    #!/usr/bin/env python
from Tkinter import *
import tkSimpleDialog
import tkMessageBox
import time
import requests
def show_entry_fields():
print("loginS3: %s \n secretpasseS3: %s \n endpointS3: %s \n " % (ChamploginS3.get(), ChampsecretpasseS3.get(), ChampsendpointS3.get()))
ChamploginS3.delete(0,END)
ChampsecretpasseS3.delete(0,END)
ChampsendpointS3.delete(0,END)
tkMessageBox.showinfo (title='inputs for S3', message="are those inputs correct ? " '\n' 'loginS3: %s \n secretpasseS3: %s \n endpointS3: %s \n ' %( ChamploginS3,ChampsecretpasseS3,ChampsendpointS3))
fenetre0 = Tk()
fenetre0.title('S3 brower perso')
fenetre0.geometry("380x100")
Label1 = Label(fenetre0, text = 'loginS3', fg = 'blue').grid (row=0)
Label2 = Label(fenetre0, text = 'secretpasseS3', fg = 'red').grid (row=1)
Label3 = Label(fenetre0, text = 'endpointS3', fg = 'purple').grid (row=2)
loginS3= StringVar()
ChamploginS3 = Entry(fenetre0, textvariable= loginS3, bg ='bisque', fg='maroon')
secretpasseS3= StringVar()
ChampsecretpasseS3 = Entry(fenetre0, textvariable= secretpasseS3, show='*', bg ='bisque', fg='maroon')
endpointS3= StringVar()
ChampsendpointS3 = Entry(fenetre0, textvariable= endpointS3, bg ='bisque', fg='maroon')
ChamploginS3.grid(row=0, column=1)
ChampsecretpasseS3.grid(row=1, column=1)
ChampsendpointS3.grid(row=2, column=1)
Bouton1 = Button(fenetre0, text = 'END', command = fenetre0.destroy).grid(row=3, column=0, sticky=W, pady=4)
Bouton2 = Button(fenetre0, text = 'SHOW', command = show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)
fenetre0.mainloop()

person MouIdri    schedule 04.07.2016    source источник


Ответы (1)


Вам нужно исправить 2 вещи:

Прежде всего, не удаляйте содержимое этих записей. Это означает, что вы должны удалить эти 3 строки:

  ChamploginS3.delete(0,END)
  ChampsecretpasseS3.delete(0,END)
  ChampsendpointS3.delete(0,END)

Во-вторых, доступ к содержимому виджета записи осуществляется с помощью метода get(). Это означает, что вам нужно изменить эту строку:

tkMessageBox.showinfo (title='inputs for S3', message="are those inputs correct ? " '\n' 'loginS3: %s \n secretpasseS3: %s \n endpointS3: %s \n ' %( ChamploginS3,ChampsecretpasseS3,ChampsendpointS3))

To:

tkMessageBox.showinfo (title='inputs for S3', message="are those inputs correct ? " '\n' 'loginS3: %s \n secretpasseS3: %s \n endpointS3: %s \n ' %(ChamploginS3.get(),ChampsecretpasseS3.get(),ChampsendpointS3.get()))

Демо:

Сделав то, что упомянуто выше, вы получите то, что ожидаете:

введите здесь описание изображения

person Billal Begueradj    schedule 04.07.2016