Форум сайта python.su
Здравствуйте! Помогите пожалуйста исправить код.
При запуске кода получаю только последнюю строку таблицы.
Надо чтобы при нажатии на кнопку в label выходили все данные из таблицы. Не судите строго только начал изучать python
Заранее огромное спасибо!
from tkinter import * import sqlite3 as lite import sys def Square(): con = lite.connect('sport.sqlite') with con: cur = con.cursor() cur.execute("SELECT * FROM HOCKEY") while True: row = cur.fetchone() if row == None: break label["text"] = row[0], "|", row[1], "|", "Адрес:", row[2], "|", "Главный тренер:", row[3], "|", row[4], "|", "Год создания:", row[5] root=Tk() button = Button(root, text="Go", command = Square) button.grid(row=1, column=1) label = Label(root, height=40) label.grid(row=0, column=0) root.mainloop()
Офлайн
Ruslan320Для начала, label помоему для этих целей не очень. А так Вам надо в строку добавления записи в лайбл в конце добавить перевод каретки и к текущему значению добавлять новое, примерно так
при нажатии на кнопку в label выходили все данные из таблицы.
label["text"] += row[0], "|", row[1], "|", "Адрес:", row[2], "|", "Главный тренер:", row[3], "|", row[4], "|", "Год создания:", row[5]
Отредактировано MrViktor (Март 15, 2017 20:06:54)
Офлайн
MrViktorВыходит ошибка.
Офлайн
Ruslan320
Все, же, в общем-то понятно. Одни из переменных является числом, а другая строкой. И Вы пытаетесь их сложить. В python, слава богу, нет такого приведения типов, поэтому ругается на ошибку, что не может сложить число и строку…
Офлайн
Ruslan320Я же написал, что примерно так, с Tk не сталкивался.
Выходит ошибка.
import tkinter root = tkinter.Tk() lab = tkinter.Label(root, height=40, text="привет \n") lab.grid(row=1, column=1) str1 = 'Лунатики \n' str2 = 'Я пришел \n' str3 = 'с миром \n' lab['text'] += str1 lab['text'] += str2 lab['text'] += str3 root.mainloop()
Офлайн