我有一个项目(使用PySide和sqlalchemy),具有以下项目结构
bin/
|-- db/ // sqlalchemy mapping to mysql tables
|
|-- model/ // custom TableModels (inherited from QAbstractTableModel)
|
|-- ui/ // ui files created by Qt Designer and the generated python files
|
|-- view/ // custom TableViews (inherited from QTableView)
|
|-- widget/ //custom widgets (inherited from QWidget)
我的问题在我创建自定义tableViews时开始。简化它,我有一个CustomerWidget和一个OrderWidget,每个都使用TableView分别显示客户和订单。我制作了一些自定义视图,以便从customerTableView中右键单击并启动包含所有客户订单的orderWidget。相反,您可以在orderWidget中右键单击它,然后从该订单中向客户启动customerWidget。
这导致导入问题,因为customerWidget导入了导入oderWidget的customerView,导入了导入customerWidget的orderView。 (实际上我有一堆小部件可以互相启动)。
我使用from ... import语法导入。我实际上通过使用常规导入“解决”了这一点。
我想知道是否有另一种更“优雅”的解决方法,因为现在我的代码充满了像
这样的东西self._model = bin.model.customerTableModel.CustomerTableModel(args)
我真的很想把它作为
self._model = CustomerTableModel(args)
感谢您的帮助。
答案 0 :(得分:0)
from bin.model import CustomerTableModel
self._model = CustomerTableModel(args)
或
from bin.model import *
self._model = CustomerTableModel(args)
或
import bin.model as bm
CustomerTableModel = bm.CustomerTableModel
self._model = CustomerTableModel(args)