![](/img/trans.png)
[英]AttributeError: 'module' object has no attribute 'PyScrolledWindow' in wxPython
[英]AttributeError: 'module' object has no attribute 'start' (wxPython)
我正在制作一个简单的文本编辑器,以获取GUI编程的基础。 我正在使用wxPython。
当我运行main.py时 ,将弹出一个窗口,其中包含READ和WRITE按钮,READ用于打开和读取文件,而WRITE用于编辑文件。 这些的
wx.Frame
类分别位于read.py和write.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.