wizards.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:fomod-designer 作者: GandaG 项目源码 文件源码
def _create_field(self, element):
        """
        :param element: the element newly copied
        :return: base QWidget, with the source and destination fields built
        """
        def button_clicked():
            open_dialog = QFileDialog()
            if element.tag == "file":
                file_path = open_dialog.getOpenFileName(self, "Select File:", self.kwargs["package_path"])
                if file_path[0]:
                    item_ui.edit_source.setText(relpath(file_path[0], self.kwargs["package_path"]))
            elif element.tag == "folder":
                folder_path = open_dialog.getExistingDirectory(self, "Select folder:", self.kwargs["package_path"])
                if folder_path:
                    item_ui.edit_source.setText(relpath(folder_path, self.kwargs["package_path"]))

        parent_element = element.getparent()

        item = QWidget()
        item_ui = wizard_files_item.Ui_base()
        item_ui.setupUi(item)

        # set initial values
        item_ui.edit_source.setText(element.properties["source"].value)
        item_ui.edit_dest.setText(element.properties["destination"].value)
        item_ui.button_delete.setIcon(QIcon(join(cur_folder, "resources/logos/logo_cross.png")))

        # connect the signals
        item_ui.edit_source.textChanged.connect(element.properties["source"].set_value)
        item_ui.edit_source.textChanged.connect(element.write_attribs)
        item_ui.edit_source.textChanged.connect(lambda: self.code_changed.emit(parent_element))
        item_ui.edit_dest.textChanged.connect(element.properties["destination"].set_value)
        item_ui.edit_dest.textChanged.connect(element.write_attribs)
        item_ui.edit_dest.textChanged.connect(lambda: self.code_changed.emit(parent_element))
        item_ui.button_source.clicked.connect(button_clicked)
        item_ui.button_delete.clicked.connect(item.deleteLater)
        item_ui.button_delete.clicked.connect(lambda _: parent_element.remove_child(element))
        item_ui.button_delete.clicked.connect(lambda: self.code_changed.emit(parent_element))

        return item
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号