繁体   English   中英

AttributeError:'模块'对象没有属性'开始'(wxPython)

[英]AttributeError: 'module' object has no attribute 'start' (wxPython)

我正在制作一个简单的文本编辑器,以获取GUI编程的基础。 我正在使用wxPython。

当我运行main.py时 ,将弹出一个窗口,其中包含READ和WRITE按钮,READ用于打开和读取文件,而WRITE用于编辑文件。 这些的wx.Frame类分别位于read.pywrite.py中

函数k()可以正常工作, write.write()没有错误,但是我原来在l()拥有read.read()得到了AttributeError

我将行更改为read.start() ,并在read.py中添加了函数start() ,该函数使该类的实例变为 read ,因为我认为可能因为它是一个类而没有执行,只是为了确定。

不过,我仍然收到错误: AttributeError:'模块'对象没有属性'开始'

main.py

import wx
import read
import write

def l(self):
    read.start()                    # getting error

def k(self):
    write.write()


app = wx.App()
first = wx.Dialog(None, -1, title='title', size=(200, 100))
panel = wx.Panel(first, -1)
panel.SetBackgroundColour('black')
bt1 = wx.Button(panel, -1, 'READ', size=(100, 100), pos=(1, 1))
bt1.SetBackgroundColour('green')
bt2 = wx.Button(panel, -1, 'WRITE', size=(100, 100), pos=(1, 2))
bt2.SetBackgroundColour('red')
first.Bind(wx.EVT_BUTTON, l, bt1)     # when bt1 is clicked, l() is executed
first.Bind(wx.EVT_BUTTON, k, bt2)     # when bt2 is clicked, k() is executed

sizer = wx.BoxSizer(wx.HORIZONTAL)

sizer.Add(bt1, 1, wx.ALIGN_CENTRE_VERTICAL)
sizer.Add(bt2, 1, wx.ALIGN_CENTRE_VERTICAL)
panel.SetSizer(sizer)
first.Centre()
first.ShowModal()
app.MainLoop()

read.py

import os
import main

def start():
    l = read()                        # makes instance of class read()

class read(wx.Frame):
    blah

write.py

import wx
import os
import main

class write(wx.Frame):                 # there is no start function, but still works
    bleh

您忘记了在read.py中导入wx。
添加此导入行后,请删除开始内容,然后使用read.read()再试一次。 第一次读取是文件名,点之后的第二次读取是类名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM