我的應用程序有一個名爲gui_constants
的模塊,其中包含我的應用程序使用的所有字體和顏色的定義。例如,gui_constants.py
可能包含如下如何在創建wx.App之前初始化wx.Font對象?
heading_font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD, face='LucidaGrande')
行和另一個文件可能會說
heading_label = wx.StaticText(self, label='Lorem Ipsum')
heading_label.SetFont(gui_constants.heading_font)
我遇到的問題是,在創建wx.App
之前我gui_constants
模塊被進口,這導致以下例外:
Traceback (most recent call last):
File "./main.py", line 3, in <module>
from new_gui_app import NewGuiApp
File ".../application/new_gui_app.py", line 3, in <module>
from views import MainWindow
File ".../application/views/__init__.py", line 1, in <module>
from banner import Banner
File ".../application/views/banner.py", line 3, in <module>
import gui_constants
File ".../application/gui_constants.py", line 63, in <module>
heading_font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD, face='LucidaGrande')
File "/usr/local/lib/python2.7/site-packages/wx-2.9.5-osx_cocoa/wx/_gdi.py", line 2156, in __init__
_gdi_.Font_swiginit(self,_gdi_.new_Font(*args, **kwargs))
wx._core.PyNoAppError: The wx.App object must be created first!
任何人都可以提出一種方法來保持這些「常數」的聲明因素考慮我nto單個模塊,同時也阻止它們在創建wx.App
之前被初始化?
元組解決方案是最好的,我只是在3.0中添加了'wxFontInfo',它是一個簡單的元組類,它也可以在GUI初始化之前創建,並從'wxFont '可以直接創建。 –
是的,我也這麼認爲,但我想給出幾個選項。 –