Last active
August 19, 2020 14:21
-
-
Save muyr/7c9999e806735100afef2f078cfe3a17 to your computer and use it in GitHub Desktop.
example for lwt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env python | |
| # -*- coding: utf-8 -*- | |
| ################################################################### | |
| # Author: Mu yanru | |
| # Date : 2020.8 | |
| # Email : [email protected] | |
| ################################################################### | |
| from dayu_widgets import * | |
| from dayu_widgets import utils | |
| from dayu_widgets.qt import * | |
| class Asset(object): | |
| def __init__(self, name): | |
| super(Asset, self).__init__() | |
| self.name = name | |
| def get_name(self): | |
| return self.name | |
| def get_path_name(self): | |
| return '/Game/xxx/' + self.name | |
| class MWidget(QWidget): | |
| def __init__(self, parent=None): | |
| super(MWidget, self).__init__(parent) | |
| item_view = MItemViewSet() | |
| line_edit = MLineEdit() | |
| def change_color(x, y): | |
| text = line_edit.text().strip() | |
| if text: | |
| if utils.get_obj_value(y, u'原名称').count(text) > 0: | |
| return Qt.darkMagenta | |
| return 'transparent' | |
| header_list = [ | |
| { | |
| 'label': u'原名称', | |
| 'key': u'原名称', | |
| 'tooltip': lambda x, y: utils.get_obj_value(y, 'obj').get_path_name(), | |
| 'bg_color': change_color | |
| }, | |
| { | |
| 'label': u'新名称', | |
| 'key': 'new_name', | |
| 'display': lambda x, y: x or utils.get_obj_value(y, 'obj').get_name(), | |
| 'bg_color': change_color, | |
| 'editable': True, | |
| 'edit': lambda x, y: x or utils.get_obj_value(y, 'obj').get_name() | |
| }, | |
| { | |
| 'label': u'文件类型', | |
| 'key': 'obj', | |
| 'display': lambda x, y: type(utils.get_obj_value(y, 'obj')).__name__, | |
| 'bg_color': change_color | |
| } | |
| ] | |
| item_view.set_header_list(header_list) | |
| line_edit.textChanged.connect(item_view.source_model.modelReset) | |
| main_lay = QVBoxLayout() | |
| main_lay.addWidget(line_edit) | |
| main_lay.addWidget(item_view) | |
| self.setLayout(main_lay) | |
| item_view.setup_data([ | |
| {'obj': asset, 'new_name': '', u'原名称':asset.get_name()} for asset in [Asset('aa'), Asset('bb'), Asset('cc')] | |
| ]) | |
| def slot_text_changed(self, text): | |
| print text | |
| if __name__ == '__main__': | |
| import sys | |
| from dayu_widgets import dayu_theme | |
| app = QApplication(sys.argv) | |
| test = MWidget() | |
| dayu_theme.apply(test) | |
| test.show() | |
| sys.exit(app.exec_()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment