Как использовать tkinter grid () на экземплярах другого класса? - PullRequest
0 голосов
/ 27 марта 2019

В настоящее время я пытаюсь закодировать PDF-слияние в Python и использую tkinter для кодирования GUI моего приложения. Обратите внимание, что это мой первый настоящий проект на Python.

Я кодировал класс для своего основного приложения и создал другой класс с именем browseButton, чтобы легче манипулировать специальным типом кнопки, которая наследуется от tkinter.Button.

Однако кнопки, созданные с помощью этого класса, не отображаются в главном приложении после использования grid () для их размещения.

Вот мой код

import tkinter as tk
from tkinter import filedialog
import openFile

class mainApplication(tk.Tk):
    def __init__(self, parent=None):
        tk.Tk.__init__(self, parent)
        self.parent=parent
        self.initialize()

    def initialize(self):
        self.grid()

        self.browseLabel=tk.Label(self, text='Select the 2 PDF files to merge.', anchor='w', fg='black')
        self.browseLabel.grid(row=1, columnspan=10, pady=20)

        createQuitButton(self)
        createMergeButton(self)

        self.browseButton1=browseButton(self)
        self.browseButton2=browseButton(self)

        self.browseButton1.button.grid(row=5, column=2)
        self.browseButton2.button.grid(row=5, column=9)
        self.browseButton1.buttonLabel.grid(row=4, column=2)
        self.browseButton2.buttonLabel.grid(row=4, column=9)

    def merge(self):
        pass

class browseButton(tk.Button):
    def __init__(self, parent=None):
        tk.Button.__init__(self, parent)
        self.parent=parent
        self.createButton()

    def openFile(self):
        openFile.askOpenFile()
        self.changeButtonLabel()

    def createButton(self):
        browseButton.buttonLabel=tk.Label(self, text='Select file', anchor='w', fg='black')
        browseButton.button=tk.Button(self, text='Browse', command=self.openFile)

    def changeButtonLabel(self):
        self.buttonLabel['text']='File Found!

Пожалуйста, может кто-нибудь сказать мне, почему это не работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...