为每个wxscrolledWindow划分代码(作为多个文件)

问题描述 投票:0回答:1

请理解,我从来没有写过复杂的代码,所以我的问题可能不合适。

如图所示的层次结构,我使用wxFormBuilder为包含八个wxScrolledWindows的笔记本制作了代码(Frame.py)。代码如下。

import wx
import wx.xrc
import wx.grid
...
class MyFrame(wx.Frmae):
  def __init__(self.parent):
    lines with wxScrolledWindow1
    lines with wxScrolledWindow2
    lines with wxScrolledWindow3
    ..
    lines with wxScrolledWindow8

  def button1(self.event):
  def ...

class frmProblem (wx.Dialog):
  ...

在这里,我想分别编写处理每个wxScrolledWindow的代码,这样我就不会在一个文件中编写太多代码。 (main.py,window1.py,window2.py,...)但我不确定如何组织文件以及如何将代码链接在一起。每个wxScrolledWindow必须相互交互并从其他窗口获取变量。

我当前的main.py包含处理所有窗口的代码,如下所示。

from Frame import MyFrame1, frmProblem
import...

class Setting(frmProblem):
  def __init__(self. parent):
    ...
  def button1_click(self, event):
    ...
  def button2_click(self, event):
    ...

class Main(MyFrame1):
  def __init__(self, parent):
    code for wxScrolledWindow1
    code for wxScrolledWindow2
    code for wxScrolledWindow3
    ...
    code for wxScrolledWindow8
    ...

  def wxScrolledWindow1_button1(self, event):
     ...
  def wxScrolledWindow1_func1(arg):
     ...
  def wxScrolledWindow1_func2(arg):
     ...
  def wxScrolledWindow2_button1(self, event):
     ...
  def wxScrolledWindow2_func1(arg):
     ...
  def wxScrolledWindow2_func2(arg):
     ...
     ...
  def wxScrolledWindow8_button1(self, event):
     ...
  def wxScrolledWindow8_func1(arg):
     ...
  def wxScrolledWindow8_func2(arg):
     ...

任何建议都会帮助我解决这个问题。 =)

python wxpython hierarchy wxformbuilder
1个回答
0
投票

在ChatGPT的帮助下,我解决了这个问题。

对于 main.py,我包含每个滚动窗口文件

import wx
from myclass1 import myclass1
from myclass2 import myclass2
...

class MyFrame(wx.Frame):
    def __init__(self, parent, id.ID_ANY, ...)
        super(MyFrame, self).__init__(parent, id, title, pose, size, style)

        notebook = wx.Notebook(self)
        Class1 = myclass1(notebook)
        Class2 = myclass2(notebook)
        ...
        
        notebook.AddPage(Class1, 'Page1')
        notebook.AddPage(Class2, 'Page2')
        notebook.AddPage(Class3, 'Page3')

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(notebook, 1, wx.EXPAND)
        self.SetSizer(sizer)
        self.Show()

app = wx.App()
frame = MyFrame(None, title='My Notebook example')
app.MainLoop()

然后我为每个页面编写py文件。

import wx
class myclass1(wx.ScrolledwWindow):

    def __init__(self, parent):
        super(myclass1, self).__init__(parent)
        ...

如今,LLM对我帮助很大=)

© www.soinside.com 2019 - 2024. All rights reserved.