0

我有两个 python 文件,第一个包含 mainWindow,第二个 python 文件包含另一个 Window。我设法使第二个窗口出现,但窗口出现后是空白的。这是错误的屏幕截图。 在此处输入图像描述

这是单击“配置”按钮后应显示的内容。 在此处输入图像描述

在主窗口文件中,我定义如下代码:

from tkinter import *
import configureUAHChange as cA

class TracingInterface(Frame):
    def __init__(self, master):
        super().__init__()
        root.minsize(width=700, height=520)
        root.maxsize(width=700, height=520)
        Frame.__init__(self, master)
        Grid.config(self)
        self.TracingMethod()
        self.logDetails()
        self.otherFunctionInterface()
        # Default window state
        self._configureUA_window = None

    def UAconfig_window(self):
        if self._configureUA_window is not None:
            return
        self._configureUA_window =cA.ConfigureUAinterface(self)

    def closeUA(self):
        # Destroy the 2nd and reset the value to None
        if self._configureUA_window is not None:
            self._configureUA_window.destroy()
            self._configureUA_window = None

此行用于按钮单击命令:

self.configUAButton = Button(self.radioframe, text="Configuration",command=self.UAconfig_window)

接下来,这就是我在第二个 python 文件中定义函数的方式

class ConfigureUAinterface(Toplevel):
def __init__(self, master):
    super().__init__(master)
    master.minsize(width=700, height=520)
    master.maxsize(width=700, height=520)

    Frame.__init__(self, master)
    Grid.config(self)

    master.title("UA Configuration")

    #Pre define combobox value in case suggestion
    self.value_of_combo='Identity Theft'

    #Run the all Function
    self.DateSelection()
    self.finish()
    self.UASuggestion()
    self.ConfigurationUA()
    self.suggestionCombo()

请告诉我如何修改我的代码来解决上述错误。

这是主窗口的完整编码:https ://drive.google.com/open?id=1KKgYPbGMNNWBfPVazHfcM_NSFlv5eEpKg3_uXsvQsNE

这是第二个窗口的完整编码:https ://drive.google.com/open?id=1LuqJXIUrDMLfuz8gnZynZXUN6-SvFAyw9c-puJ3REPQ

4

1 回答 1

1

1 )我认为有一些root应该master__init__.TracingInterface

2)您传递给的主人ConfigureUAinterface不是一个窗口,而是TracingInterface一个框架,没有minsize,maxsizetitle方法。

3)我不知道你为什么使用Frame.__init__(self, master)whileConfigureUAinterface继承自 a Toplevel

编辑:主窗口的更改:

class TracingInterface(Frame):
    def __init__(self, master):
        super().__init__()

        # 1) master instead of root (it was just a typo I think)
        master.minsize(width=700, height=520)
        master.maxsize(width=700, height=520)
        # Frame.__init__(self, master): redundant with super().__init__()
        Grid.config(self)
        self.TracingMethod()
        self.logDetails()
        self.otherFunctionInterface()
        # Default window state
        self._configureUA_window = None

    def UAconfig_window(self):
        if self._configureUA_window is not None:
            return None
        # 2) changed self which is a frame to the actual window self.master
        self._configureUA_window = cA.ConfigureUAinterface(self.master)

第二个窗口的变化:

class ConfigureUAinterface(Toplevel):
    def __init__(self, master):
        super().__init__(master)
        # replaced master by self since it's the Toplevel size we want to limit
        self.minsize(width=700, height=520)
        self.maxsize(width=700, height=520)

        # 3) The following is inapropriate since the widget 
        #    inherit from Toplevel, not Frame:
        #  Frame.__init__(self, master)
        #  Grid.config(self)

        # replaced master by self since it's the Toplevel title
        self.title("UA Configuration")

        #Pre define combobox value in case suggestion
        self.value_of_combo='Identity Theft'

        #Run the all Function
        self.DateSelection()
        self.finish()
        self.UASuggestion()
        self.ConfigurationUA()
        self.suggestionCombo()

我没有修改代码中的任何其他内容,当我尝试时,它起作用了。

于 2016-07-16T21:12:37.757 回答