[D]使用xrced创建的程序界面不能运行

liagn 2012-05-08 05:13:46
请哪位大侠帮我指正一下,为什么会报错呀?谢谢了!!!

xrc文件:
<?xml version="1.0" encoding="UTF-8"?>
<resource class="">
<object class="wxDialog" name="mainDialog">
<object class="wxComboBox" name="dblistCBox">
<pos>10,35</pos>
<size>300,20</size>
<content>
<item/>
</content>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSIMPLE_BORDER|wxCB_READONLY</style>
</object>
<object class="wxTextCtrl" name="bkdirCtr">
<pos>10,215</pos>
<size>300,20</size>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSIMPLE_BORDER</style>
</object>
<object class="wxStaticText" name="dblistText">
<pos>10,10</pos>
<size>300,20</size>
<label>选择要备份的数据库文件:</label>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSIMPLE_BORDER</style>
</object>
<object class="wxButton" name="button1">
<pos>350,15</pos>
<size>60,40</size>
<label>Open</label>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSUNKEN_BORDER</style>
</object>
<object class="wxStaticText" name="dirText">
<pos>10,100</pos>
<size>300,20</size>
<label>选择要备份的目录:</label>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSIMPLE_BORDER</style>
</object>
<object class="wxComboBox" name="dirCBox">
<pos>10,125</pos>
<size>300,20</size>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSIMPLE_BORDER|wxCB_READONLY</style>
</object>
<object class="wxButton" name="button2">
<pos>350,105</pos>
<size>60,40</size>
<label>Open</label>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSUNKEN_BORDER</style>
</object>
<object class="wxStaticText" name="bkdirText">
<pos>10,190</pos>
<size>300,20</size>
<label>指定备份文件保存路径:</label>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSIMPLE_BORDER</style>
</object>
<object class="wxButton" name="button3">
<pos>350,195</pos>
<size>60,40</size>
<label>开始备份</label>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSUNKEN_BORDER</style>
</object>
<object class="wxButton" name="button4">
<pos>430,195</pos>
<size>60,40</size>
<label>取消备份</label>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSUNKEN_BORDER</style>
</object>
<object class="wxGauge" name="gauge">
<pos>10,250</pos>
<size>480,30</size>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSIMPLE_BORDER</style>
</object>
<object class="wxStaticText" name="ztxixiText">
<pos>10,300</pos>
<size>480,20</size>
<fg>#FF8000</fg>
<bg>#FFFFFF</bg>
<style>wxSIMPLE_BORDER</style>
</object>
<pos>5,5</pos>
<size>550,400</size>
<title>TD备份工具</title>
<centered>1</centered>
<fg>#000000</fg>
<bg>#0080FF</bg>
<style>wxSIMPLE_BORDER|wxDEFAULT_DIALOG_STYLE|wxCAPTION|wxCLOSE_BOX|wxDIALOG_MODAL</style>
</object>
</resource>


python源文件:
# -*- coding:utf-8 -*-
# main.py

import wx
from wx import xrc


class MyApp(wx.App):
def OnInit(self):
self.res=xrc.XmlResource('备份工具模板.xrc')
assert self.res
self.init_frame()
return True

def init_frame(self):
self.frame=self.res.LoadDialog(None,'mainDialog')
assert self.frame
self.dblistText=xrc.XRCCTRL(self.frame,'dblistText')
self.dblistCBox=xrc.XRCCTRL(self.frame,'dblistCBox')
self.button1=xrc.XRCCTRL(self.frame,'button1')
self.dirText=xrc.XRCCTRL(self.frame,'dirText')
self.dirCBox=xrc.XRCCTRL(self.frame,'dirCBox')
self.button2=xrc.XRCCTRL(self.frame,'button2')
self.bkdirText=xrc.XRCCTRL(self.frame,'bkdirText')
self.bkdirCtr=xrc.XRCCTRL(self.frame,'bkdirCtr')
self.button3=xrc.XRCCTRL(self.frame,'button3')
self.button4=xrc.XRCCTRL(self.frame,'button4')
self.gauge=xrc.XRCCTRL(self.frame,'gauge')
self.ztxinxiText=xrc.XRCCTRL(self.frame,'ztxinxiText')

self.frame.Bind(wx.EVT_BUTTON,self.OnSubmit1,id=xrc.XRCID('button1'))
self.frame.Bind(wx.EVT_BUTTON,self.OnSubmit2,id=xrc.XRCID('button2'))
self.frame.Bind(wx.EVT_BUTTON,self.OnSubmit3,id=xrc.XRCID('button3'))
self.frame.Bind(wx.EVT_BUTTON,self.OnSubmit4,id=xrc.XRCID('button4'))
self.frame.Show()

def OnSubmit1(self,evt):
pass
def OnSubmit2(self,evt):
pass
def OnSubmit3(self,evt):
pass
def OnSubmit4(self,evt):
pass

if __name__=='__main__':
app=MyApp(False)
app.MainLoop()


错误信息:
> "D:\Python26\pythonw.exe" -u "C:\main.py"
Traceback (most recent call last):
File "C:\main.py", line 47, in <module>
app=MyApp(False)
File "D:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 7981, in __init__
self._BootstrapApp()
File "D:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 7555, in _BootstrapApp
return _core_.PyApp__BootstrapApp(*args, **kwargs)
File "C:\main.py", line 12, in OnInit
self.init_frame()
File "C:\main.py", line 17, in init_frame
assert self.frame
AssertionError


----------------------------
Double行动:
原帖分数:30
加分:30
...全文
131 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liagn 2012-05-09
  • 打赏
  • 举报
回复
找到问题了,.xrc文件不能用中文名字,还是谢谢你。
angel_su 2012-05-08
  • 打赏
  • 举报
回复
下面是用你的xrc让xrced自动生成的代码,正常能显示的,剩下的事件绑定及回调函数自己完善吧...

# This file was automatically generated by pywxrc.
# -*- coding: UTF-8 -*-

import wx
import wx.xrc as xrc

__res = None

def get_resources():
""" This function provides access to the XML resources in this module."""
global __res
if __res == None:
__init_resources()
return __res




class xrcmainDialog(wx.Dialog):
#!XRCED:begin-block:xrcmainDialog.PreCreate
def PreCreate(self, pre):
""" This function is called during the class's initialization.

Override it for custom setup before the window is created usually to
set additional window styles using SetWindowStyle() and SetExtraStyle().
"""
pass

#!XRCED:end-block:xrcmainDialog.PreCreate

def __init__(self, parent):
# Two stage creation (see http://wiki.wxpython.org/index.cgi/TwoStageCreation)
pre = wx.PreDialog()
self.PreCreate(pre)
get_resources().LoadOnDialog(pre, parent, "mainDialog")
self.PostCreate(pre)

# Define variables for the controls, bind event handlers





# ------------------------ Resource data ----------------------

def __init_resources():
global __res
__res = xrc.EmptyXmlResource()

__res.Load('1.xrc')


if __name__ == '__main__':
app=wx.App(False)
dlg=xrcmainDialog(None)
dlg.Show()
app.MainLoop()
angel_su 2012-05-08
  • 打赏
  • 举报
回复
你用xrced生成python代码跑跑先...

37,741

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧