Хобрук: Ваш путь к мастерству в программировании

Добавление метки в другое окно в tkinter с использованием классов

У меня небольшой вопрос новичка, но я начал изучать tkinter, используя классы. Я хочу добавить метку в новое окно, созданное кнопкой. Когда я запускаю код, моя метка отображается в главном окне, а не во втором. Есть код:

import pandas as pd
import tkinter as tk
products = pd.DataFrame({'Type of Product 1': ['1_Product_1', '1_Product_2'],
                'Type of Product 2': ['2_Product_1', '2_Product_2']})

#GUI
class App(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        self.create_widgets()
    def create_widgets(self):
        self.Button = tk.Button()
        self.Button['text'] = 'Click to see datas'
        self.Button['command'] = self.new_window
        self.Button.pack()
    def new_window(self):
        self.root = tk.Tk()
        self.label = tk.Label(self)
        self.label['text'] = products
        self.label.pack()
    


root = tk.Tk()
root.geometry('350x400')
app = App(master=root)
app.mainloop()

Заранее спасибо!

19.11.2020

Ответы:


1

Вам нужно явно установить master для внутренних виджетов

self.Button = tk.Button(self)

Независимо от вопроса, который вы задали, вам не следует звонить tk.Tk() более одного раза. Если вам нужно больше окон, используйте tk.Toplevel.

def new_window(self):
    self.root = tk.Toplevel()
    self.label = tk.Label(self.root)
    ...
19.11.2020
Новые материалы

Введение в контекст React
В этом посте мы поговорим о Context API, который был представлен в React 16, и о том, как вы можете их использовать. Что такое контекст? Глядя на определение из react docs , оно..

Шлюз с лицензией OSS, совместимый с Apollo Federation v2, появится в WunderGraph
Сегодня мы рады сообщить, что мы сотрудничаем с поддерживаемой YC Tailor Technologies, Inc. для внедрения Apollo Federation v2. Реализация будет лицензирована MIT (Engine) и Apache 2.0..

Это оно
Ну, я официально уволился с работы! На этой неделе я буду лихорадочно выполнять последние требования Думающего , чтобы я мог сосредоточиться на поиске работы. Что именно это значит?..

7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

Базовое руководство по переносу концепций обучения в глубокое обучение
Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

C в C.R.U.D с использованием React-Redux
Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

5 обязательных элементов современного инструмента конвейера данных
В цифровом мире предприятия используют конвейеры данных для перемещения, преобразования и хранения огромных объемов данных. Эти конвейеры составляют основу бизнес-аналитики и играют..