Доступ к детям в LabelFrames с использованием Tkinter и Python 3 - PullRequest
0 голосов
/ 24 декабря 2018

Я работаю с tkinter и настроил приложение для моего проекта.Моя цель - извлечь значение из tk.Entry(), которое находится в пределах tk.LabelFrame() (в этом коде, на который ссылается переменная groupbox).Кнопка находит groupbox, и код также проходит компилятор.Наверное, мой вопрос: Как получить доступ к виджетам и их значениям в LabelFrame?

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tkinter as tk


class Application(tk.Frame):
    def __init__(self, master=None):
        tk.Frame.__init__(self, master)
        self.master.title("Application Title")

        # Introduce LabelFrame
        self.groupbox = tk.LabelFrame(self, text="Parameters")
        self.groupbox.grid(row=0, column=1, padx=5, pady=5)

        # Test Label & Entry Widget
        label = tk.Label(self.groupbox, text="label=")
        label.grid(row=0, column=0, sticky="W")
        entry = tk.Entry(self.groupbox)
        entry.insert(0, default_value)
        entry.grid(row = 0, column=1)

        # Compile Button
        button = tk.Button(self.groupbox, text="Compile", command=self.compile)
        button.grid(row=1, column=1)

    # Retrieve first Value (second Widget) from LabelFrame
    def compile(self):
        print(self.groupbox.entry.get(1))

if __name__ == '__main__':
    figure = Application()
    figure.pack()
    figure.mainloop()

Я делаю это, потому что хочу выполнить некоторые вычисления на основе tk.Entry()значения, вызываемые нажатием кнопки, которые содержатся в том же LabelFrame(), как предложено в приведенном выше фрагменте кода (в исходном коде гораздо больше виджетов, но это, по сути, суть моей текущей проблемы).

1 Ответ

0 голосов
/ 24 декабря 2018

Изменить entry на self.entry.

class Application(tk.Frame):
    def __init__(self, master=None):

        ....
        self.entry = tk.Entry(self.groupbox)
        self.entry.insert(0, "default_value")
        self.entry.grid(row = 0, column=1)
        ...

    # Retrieve first Value (second Widget) from LabelFrame
    def compile(self):
        print(self.entry.get())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...