带有树或树选项的插件

2024-09-30 01:34:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我为Abaqus创建了一个AFXList插件(abaqusguitoolkit用户手册,第3.3.1节列表),它可以工作(将选中的项目发送到主脚本)。 现在我想创建类似的,但是使用FXTreeList(同上,第3.5.1节Tree list)或AFXOptionTreeList(同上,第3.5.1节Option Tree list),但是它们不会传递选定的项。如何修复?谢谢。你知道吗

创建了AFXList,可以正常工作,以及FXTreeList和AFXOptionTreeList,不能正常工作:

AFXList公司

def __init__(self, form):
    AFXDataDialog.__init__(self, form, 'Research',
        self.OK|self.CANCEL, DIALOG_ACTIONS_SEPARATOR)
    self.form = form
    okBtn = self.getActionButton(self.ID_CLICKED_OK)
    okBtn.setText('OK')
    gb = FXGroupBox(self, 'MyLab', FRAME_GROOVE|LAYOUT_FILL_X)
    hf = FXHorizontalFrame(gb, LAYOUT_FILL_X, 0,0,0,0, 0,0,0,0)
    vf = FXVerticalFrame(hf, FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X, 
                                              0,0,0,0, 0,0,0,0)
    # -------------------------------------------------------------------
    List = AFXList(p=vf, nvis=5, tgt=form.mdlCodeKw, sel=0, 
           opts=HSCROLLING_OFF|LIST_SINGLESELECT|LAYOUT_FILL_X)
    List.appendItem(text='Study_1')
    List.appendItem(text='Research_2')
    List.appendItem(text='Test_3')
    List.appendItem(text='Case_4')
    List.appendItem(text='Project_5')

FXTreeList列表

def __init__(self, form):
    AFXDataDialog.__init__(self, form, 'Research',
        self.OK|self.CANCEL, DIALOG_ACTIONS_SEPARATOR)
    self.form = form        
    okBtn = self.getActionButton(self.ID_CLICKED_OK)
    okBtn.setText('OK')
    gb = FXGroupBox(self, 'MyLab', FRAME_GROOVE|LAYOUT_FILL_X)
    hf = FXHorizontalFrame(gb, LAYOUT_FILL_X, 0,0,0,0, 0,0,0,0)
    vf = FXVerticalFrame(hf, FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X, 
                                              0,0,0,0, 0,0,0,0)
    # -------------------------------------------------------------------
    self.tree = FXTreeList(vf, 15, form.MdlDistKw, 0,
    TREELIST_SHOWS_BOXES|TREELIST_SHOWS_LINES|
        TREELIST_ROOT_BOXES|
        HSCROLLING_OFF|TREELIST_SINGLESELECT|LAYOUT_FILL_X)
    option1 = self.tree.addItemLast(None, 'Numerical analysis')
    self.tree.addItemLast(option1, 'Study_1')
    self.tree.addItemLast(option1, 'Research_2')
    option2 = self.tree.addItemLast(None, 'Laboratory tests')
    self.tree.addItemLast(option2, 'Test_3')
    self.tree.addItemLast(option2, 'Case_4')
    option3 = self.tree.addItemLast(None, 'General publication')
    option3a = self.tree.addItemLast(option3, 'Other researches')
    self.tree.addItemLast(option3a, 'Ref-1_Project_5')
    self.tree.expandTree(option1)
    self.tree.expandTree(option2)
    self.tree.expandTree(option3)
    self.tree.expandTree(option3a)

AFXOptionTreeList列表

def __init__(self, form):
    AFXDataDialog.__init__(self, form, 'Research',
        self.OK|self.CANCEL, DIALOG_ACTIONS_SEPARATOR)
    self.form = form        
    okBtn = self.getActionButton(self.ID_CLICKED_OK)
    okBtn.setText('OK')
    gb = FXGroupBox(self, 'MyLab', FRAME_GROOVE|LAYOUT_FILL_X)
    hf = FXHorizontalFrame(gb, LAYOUT_FILL_X, 0,0,0,0, 0,0,0,0)
    vf = FXVerticalFrame(hf, FRAME_SUNKEN|FRAME_THICK|LAYOUT_FILL_X, 
                                              0,0,0,0, 0,0,0,0)
    # -------------------------------------------------------------------
    tree = AFXOptionTreeList(vf, 10)
    item = tree.addItemLast('Numerical_analysis')
    item.addItemLast('Study_1')
    item.addItemLast('Research_2')
    item = tree.addItemLast('Laboratory tests')
    item.addItemLast('Test_3')
    item.addItemLast('Case_4')
    item = tree.addItemLast('Other researches')
    item.addItemLast('Ref-1_Project_5')

列表中选择的项目应发送到主代码

也许我应该澄清我的问题。 例如,该插件创建了一个FXTreeList,单击OK之后,在Abaqus中创建一个新模型,但只使用默认名称“MyMdl”,而不管树中的哪个项目被选中。你知道吗

class TreeListEx_plugin(AFXForm):
    def __init__(self, owner):
        AFXForm.__init__(self, owner)
        self.cmd = AFXGuiCommand(mode=self, method='createModel',
            objectName='TreeListExCreate')
        self.MdlDistKw = AFXStringKeyword(self.cmd, 'MdlDist', True, 'MyMdl')
    def getFirstDialog(self):
        import TreeListExDB
        return TreeListExDB.TreeListExDB(self)

换句话说,项目选择不起作用。如何解决这个问题?你知道吗


Tags: selfformtreeinitokitemfillframe

热门问题