在主窗口中单击按钮后,第二个窗口是空白的

2024-06-28 11:23:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个python文件,第一个是包含主窗口,第二个python文件包含另一个窗口。我设法使第二个窗口出现,但窗口出现后是空白的。这是错误的屏幕截图。 enter image description here

下面是单击“配置”按钮后应该显示的内容。 enter image description here

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

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


Tags: 文件theselfmasternoneinitvaluedef
1条回答
网友
1楼 · 发布于 2024-06-28 11:23:53

1)我认为在TracingInterface__init__函数中有一些root应该是master。你知道吗

2)传递给ConfigureUAinterface的主控形状不是一个窗口,而是一个TracingInterface,它是一个帧,没有minsizemaxsizetitle方法。你知道吗

3)我不知道为什么您使用Frame.__init__(self, master)ConfigureUAinterfaceToplevel继承。你知道吗

编辑: 主窗口的更改:

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()

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

相关问题 更多 >