Таблицы в приложении. Treeview. Scrollbar. Создание десктопного приложения с помощью Tkinter #4

Поділитися
Вставка
  • Опубліковано 13 січ 2025

КОМЕНТАРІ • 35

  • @MRbahoo08
    @MRbahoo08 3 роки тому +8

    Очень качественный урок. На моё удивление, в видео обращено внимание на казалось бы очевидные вопросы, но на которые обычно нет ответа в большинстве статей/видео. Разобано за 8 минут всё самое необходимое) спасибо)

    • @SweetCoder
      @SweetCoder  3 роки тому +1

      спасибо за отзыв. очень приятно

  • @PetrovMaxim3dmarks
    @PetrovMaxim3dmarks 2 роки тому +1

    Как же я кайфую с приветствия и названия канала. Ну и уроки огонь, пересматриваю по многу раз, спасибо за труд!

  • @ВасилийБаритонов-щ5ы

    Именно это я и искал. Спасибо.

  • @darkerside844
    @darkerside844 4 роки тому +7

    Сколько искал как сделать таблицу в Tkinter , но ни у кого особо не находил все говорили вот, делай через entry или lable у видел твой ролик в рекомендации, и мне он очень помог спасибо

  • @Botik-mn9rg
    @Botik-mn9rg 2 роки тому

    Спасибо за урок . Очень понятно, но хотелось бы чтобы публиковали исходники))

  • @mavkanavka
    @mavkanavka 3 роки тому +1

    Красавчик!!!!
    Спасибо

    • @SweetCoder
      @SweetCoder  3 роки тому

      спасибо за отзыв

  • @7EnderToy7
    @7EnderToy7 3 роки тому +4

    Есть возможность изменить ширину определённой колонки:
    for header in heads:
    table.heading(header, text=header, anchor='center')
    table.column(header, anchor='center')
    table.column("id", width=100)
    (Может есть способ получше, но я додумался только до такого)

  • @LexaNavigator777
    @LexaNavigator777 7 місяців тому

    Здравствуйте, подскажите пожалуйста, у меня некоторые значения элемента таблицы пересекаются визуально с ниже лежащими элементами таблицы (текст по тексту пересекается, как будто писали по написанному со смещением, а не обводили и стало жироно :))... ) Как можно автоматически увеличивать высоту столбца, чтобы текст не выходил за рамки ячейки (как в моём случае).

  • @Vavok0
    @Vavok0 Рік тому

    как сделать чтоб в большой таблице при запуске программы показывался низ таблицы, а не шапка её, с первыми значениями?

  • @Бензини
    @Бензини Рік тому

    интересный пример, но почему вечно код наполовину скрыт за экраном?

  • @LimvirTV
    @LimvirTV 2 роки тому

    Здравствуйте. Перерыл много видео, однако только в вашем нашел, как можно вывести таблицу. Красиво и легко. И появился также сразу вопрос :
    А возможно ли сделать постоянно обновляемую таблицу без ее закрытия ? То есть чтобы данные визуально отображались с обновлением каждые 0.5 секунд

  • @deadpehto
    @deadpehto 2 роки тому

    Очень спасибо, но есть вопрос - а можно ли выделить строку в таблице, и, допустим, по нажатию какой-нибудь кнопки получить данные из этой строки?
    UPD: Не актуально, разобрался, достаточно прочитать документацию)

  • @igorurmach8144
    @igorurmach8144 4 роки тому +3

    Привет я смотрю твой курс и у меня появился воопрос. Строка 64 время в видео 7.33 Где ты там нашел функцию get_table_data() если в прошлом видео ее нет.

    • @SweetCoder
      @SweetCoder  4 роки тому

      киноляп )) так часто бывает. кусок мог потеряться при монтаже. или я мог просто забыть сфокусировать внимание на появлении этой функции. в любом случае она тривиальная. обычная выборка из базы

  • @igorurmach8144
    @igorurmach8144 4 роки тому +1

    у тебя функция get_table_data():
    выглядит вот так -
    def get_table_data():
    all_data2 = []
    with sqlite3.connect('db/database.db') as db:
    db.row_factory = sqlite3.Row
    cursor = db.cursor()
    query = """ SELECT * FROM payments """
    cursor.execute(query)
    all_data2 = cursor
    return all_data2
    ?

    • @SweetCoder
      @SweetCoder  4 роки тому

      def get_table_data():
      data = get_statistic_data()
      return [(i['id'],i['name'],i['amount'],'{:%d-%m-%Y}'.format(
      get_date(i['payment_date']))) for i in data]
      get_statistic_data() - есть в коде выше

    • @igorurmach8144
      @igorurmach8144 4 роки тому

      @@SweetCoder спасибо

  • @radura942
    @radura942 3 роки тому

    Добрый день, благодарю за вашу деятельность. У меня вопрос. Можно ли разлиновать хотя бы эти стоки? Понятно, что можно через одну строку чередовать цвета. Но интересует разлиновка по ячейкам (столбцы и стоки). И кажется это сделать нельзя.(((

  • @sammyrayer3058
    @sammyrayer3058 Рік тому

    Сомневаюсь конечно, что Вы ответе на вопрос по столь давнему видеоролику, но очень бы хотелось. Выдаёт ошибку
    in get_table_data
    return [(i['id'], i['name'], i['amount'], '{:%d-%m-%Y}'.format(get_date(i['payment_date'], i['expense_id'])))]
    NameError: name 'i' is not defined
    Понимаю, что не обозначена i, но где и как это нужно было сделать?

  • @ruslanways
    @ruslanways 2 роки тому

    У меня вопрос. в ttk.treeview на экране с высоким разрешением у меня строки накладываются одна на другую, а также ширина колонок ужже, чем контент. Если я не добавляю ширину, то устанавливается 200 по умолчанию и это намного длиннее чем мой контент, но даже мой короткий контент почему-то не влезает. Вобщем, вопрос - как сделать таблицу responsive чтобы ширина блоков была по контенту, не больше ни меньше. Ну и тем более высота строки чтобы не сьедала ряды, а была также по контенту, не больше и не меньше.
    p.s. я думал это выставлено по умолчанию, но нет...
    я вышел криво из положения - задал высоту строки и ширину ячейки с привязкой к ширине экрана (в пикселях) - на разных платформах и экранах стало более менее приемлемно. НО все равно как по мне это хардкор) МОжет есть какой-то способ?

  • @igorurmach8144
    @igorurmach8144 4 роки тому +1

    Спасибо за ответ. По ходу курса у меня появилась ошибка в файле с функциями in get_most_exp_month
    if get_date(payments['payment_date']).month() in days:
    TypeError: 'int' object is not callable вот тут не знаешь в чем проблема

    • @SweetCoder
      @SweetCoder  4 роки тому +1

      .month() - это функция. она не может быть
      .month - а это свойство объекта. оно может быть
      скобки не нужны

    • @igorurmach8144
      @igorurmach8144 4 роки тому

      @@SweetCoder спасибо

  • @ernesttrachuk6931
    @ernesttrachuk6931 3 роки тому

    Доброго времени суток, есть вопрос, как я могу удалить всё дерево и построить новое на его месте ? мне нужно перезаписывать данные, но оно не хочет меняться или удаляться

    • @SweetCoder
      @SweetCoder  3 роки тому

      короткий ответ: да, можешь. более детально нужно смотреть уже в конкретной ситуации. самое простое решение создать в родительском блоке пять отдельных блоков для пяти списков

    • @SweetCoder
      @SweetCoder  3 роки тому

      херасе приколы... редактировать комментарий уже после того, как на него ответили... как-то не по-христиански

    • @ernesttrachuk6931
      @ernesttrachuk6931 3 роки тому

      @@SweetCoder я крайне извиняюсь, я изменил его как только смог найти решение той проблемы, но столкнулся с другой и вот уже её решить не смог, а коммент я поменял до того как ответили, по-крайней мере у меня ответ не отображался, извиняюсь и прошу помочь ещё раз 😅

    • @SweetCoder
      @SweetCoder  3 роки тому

      @@ernesttrachuk6931 очевидно, что если мы вставляем элементы с помощью insert(), то удалять их можно с помощью функции delete(). удалить виджет полностью из окна можно с помощью destroy(). вся эта информация есть в документации

  • @zxzxz.l6285
    @zxzxz.l6285 2 роки тому

    Можно код