Skip to content

Instantly share code, notes, and snippets.

@muyr
Last active August 19, 2020 14:21
Show Gist options
  • Select an option

  • Save muyr/7c9999e806735100afef2f078cfe3a17 to your computer and use it in GitHub Desktop.

Select an option

Save muyr/7c9999e806735100afef2f078cfe3a17 to your computer and use it in GitHub Desktop.
example for lwt
#!/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