Explorar el Código

添加触发动作设置和收集动画动态界面

Menglan_Luo hace 2 años
padre
commit
714765be47

+ 6 - 12
ConfigurableTool.pro

@@ -9,10 +9,9 @@ CONFIG += c++11
 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
 
 SOURCES += \
-    basicproperty.cpp \
+    actionSettingDialog.cpp \
     changenamedialog.cpp \
     collectionwindow.cpp \
-    containerpool.cpp \
     elemPropertyData.cpp \
     main.cpp \
     mainwindow.cpp \
@@ -21,11 +20,10 @@ SOURCES += \
     plistcpp/pugixml.cpp \
     plistcpp/redream.cpp \
     readJsonSrc.cpp \
-    resfiledialog.cpp \
-    statusconfiguration.cpp
+    resfiledialog.cpp
 
 HEADERS += \
-    basicproperty.h \
+    actionSettingDialog.h \
     boost/any.hpp \
     boost/config.hpp \
     boost/config/abi/borland_prefix.hpp \
@@ -293,7 +291,6 @@ HEADERS += \
     boost/version.hpp \
     changenamedialog.h \
     collectionwindow.h \
-    containerpool.h \
     elemPropertyData.h \
     mainwindow.h \
     plisthpp/Plist.hpp \
@@ -303,17 +300,14 @@ HEADERS += \
     plisthpp/pugixml.hpp \
     plisthpp/redream.h \
     readJsonSrc.h \
-    resfiledialog.h \
-    statusconfiguration.h
+    resfiledialog.h
 
 FORMS += \
-    basicproperty.ui \
+    actionSettingDialog.ui \
     changenamedialog.ui \
     collectionwindow.ui \
-    containerpool.ui \
     mainwindow.ui \
-    resfiledialog.ui \
-    statusconfiguration.ui
+    resfiledialog.ui
 
 # Default rules for deployment.
 qnx: target.path = /tmp/$${TARGET}/bin

+ 88 - 0
actionSettingDialog.cpp

@@ -0,0 +1,88 @@
+#include "actionSettingDialog.h"
+#include "ui_actionSettingDialog.h"
+#include <QPushButton>
+#include <QFormLayout>
+#include <QComboBox>
+#include <QLineEdit>
+#include <iostream>
+#include <QLabel>
+
+ActionSettingDialog::ActionSettingDialog(QWidget *parent) :
+    QDialog(parent),
+    ui(new Ui::ActionSettingDialog)
+{
+    ui->setupUi(this);
+    ui->buttonBox->button(QDialogButtonBox::Ok)->setText("应用");
+    ui->buttonBox->button(QDialogButtonBox::Cancel)->setText("放弃");
+}
+
+ActionSettingDialog::~ActionSettingDialog()
+{
+    delete ui;
+}
+
+void ActionSettingDialog::setDialogUi(QVector<ReadJsonSrc::Fields> fields, QMap<QString, QString> data,QStringList listItems)
+{
+    fieldVec = fields;
+    QFormLayout* formlayout = new QFormLayout();
+    for(const auto &i:fields){
+        if(i.type == "list"){
+            QComboBox* combo = new QComboBox;
+            combo->addItems(listItems);
+            QString val;
+            if(data.find(i.name) != data.end()) val = data[i.name];
+            else val = i.defaultVal;
+            int index = combo->findText(val);
+            combo->setCurrentIndex(index);
+            connect(combo,SIGNAL(currentTextChanged(QString)),this,SLOT(onComboBoxTextChanged(QString)));
+            formlayout->addRow(i.name,combo);
+        }
+        else if(i.type == "input"){
+            QString val;
+            if(data.find(i.name) != data.end()) val = data[i.name];
+            else val = i.defaultVal;
+            QLineEdit* edit = new QLineEdit(val);
+            connect(edit,SIGNAL(editingFinished()),this,SLOT(onLineEditTextChanged()));
+            formlayout->addRow(i.name,edit);
+        }
+    }
+    ui->widget->setLayout(formlayout);
+}
+
+void ActionSettingDialog::onComboBoxTextChanged(QString arg)
+{
+    QComboBox *box = dynamic_cast<QComboBox*>(this->sender());
+    QFormLayout* formlayout = dynamic_cast<QFormLayout*>(ui->widget->layout());
+    QLabel *label = dynamic_cast<QLabel*>(formlayout->labelForField(box));
+    std::cout<<qPrintable(label->text())<<": "<<qPrintable(arg)<<std::endl;
+}
+
+void ActionSettingDialog::onLineEditTextChanged()
+{
+    QLineEdit *edit = dynamic_cast<QLineEdit*>(this->sender());
+    QFormLayout* formlayout = dynamic_cast<QFormLayout*>(ui->widget->layout());
+    QLabel *label = dynamic_cast<QLabel*>(formlayout->labelForField(edit));
+    std::cout<<qPrintable(label->text())<<": "<<qPrintable(edit->text())<<std::endl;
+}
+
+//点击应用,保存数据
+void ActionSettingDialog::on_buttonBox_accepted()
+{
+    QFormLayout* formlayout = dynamic_cast<QFormLayout*>(ui->widget->layout());
+    int itemCout = formlayout->count();
+    for(int itemIndex=1;itemIndex<itemCout;itemIndex+=2){
+        QLayoutItem* item = formlayout->itemAt(itemIndex);
+        int i = itemIndex/2;
+        if(fieldVec[i].type == "list"){
+            QComboBox* combo = dynamic_cast<QComboBox*>(item->widget());
+            dataMap[fieldVec[i].name] = combo->currentText();
+            std::cout<<qPrintable(fieldVec[i].name)<<": "<<qPrintable(combo->currentText())<<std::endl;
+        }
+        else if(fieldVec[i].type == "input"){
+            QLineEdit* edit = dynamic_cast<QLineEdit*>(item->widget());
+            dataMap[fieldVec[i].name] = edit->text();
+            std::cout<<qPrintable(fieldVec[i].name)<<": "<<qPrintable(edit->text())<<std::endl;
+        }
+    }
+}
+

+ 31 - 0
actionSettingDialog.h

@@ -0,0 +1,31 @@
+#ifndef ACTIONSETTINGDIALOG_H
+#define ACTIONSETTINGDIALOG_H
+
+#include "readJsonSrc.h"
+#include <QDialog>
+
+namespace Ui {
+class ActionSettingDialog;
+}
+
+class ActionSettingDialog : public QDialog
+{
+    Q_OBJECT
+
+public:
+    explicit ActionSettingDialog(QWidget *parent = nullptr);
+    ~ActionSettingDialog();
+    void setDialogUi(QVector<ReadJsonSrc::Fields> fields,QMap<QString,QString> data,QStringList listItems);
+    QMap<QString,QString> dataMap;
+
+private slots:
+    void on_buttonBox_accepted();
+    void onLineEditTextChanged();
+    void onComboBoxTextChanged(QString arg1);
+
+private:
+    Ui::ActionSettingDialog *ui;
+    QVector<ReadJsonSrc::Fields> fieldVec;
+};
+
+#endif // ACTIONSETTINGDIALOG_H

+ 67 - 0
actionSettingDialog.ui

@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ActionSettingDialog</class>
+ <widget class="QDialog" name="ActionSettingDialog">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QWidget" name="widget" native="true"/>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>ActionSettingDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>ActionSettingDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>

+ 0 - 79
basicproperty.cpp

@@ -1,79 +0,0 @@
-#include "basicproperty.h"
-#include "ui_basicproperty.h"
-#include "collectionwindow.h"
-#include "statusconfiguration.h"
-#include "containerpool.h"
-#include <QFileDialog>
-#include <QDragEnterEvent>
-#include <QMimeData>
-#include <QUrl>
-#include <QTableView>
-#include <QStandardItemModel>
-#include <iostream>
-
-//TODO:左侧添加列表,支持添加删除元素,右边的UI保持不变,设计数据类存储元素对应的数据
-BasicProperty::BasicProperty(QWidget *parent) :
-    QMainWindow(parent),
-    ui(new Ui::BasicProperty)
-{
-    ui->setupUi(this);
-    QPixmap pix("/Users/menglanluo/pic.png");
-    ui->label_pic->setPixmap(pix.scaled(50,50,Qt::KeepAspectRatio));
-    ui->tabWidget_collection->addTab(new CollectionWindow(),"mallColl");
-    ui->tabWidget_status->addTab(new StatusConfiguration(),"1");
-    ui->tabWidget_container->addTab(new ContainerPool(),"pool1");
-    this->setAcceptDrops(true);
-    resource = new QLineEdit(this);
-    resource->setAcceptDrops(false);
-    ui->tableWidget_animation->setHorizontalHeaderLabels({"名称","资源","时间线","z-Order"});
-//    ui->tableWidget_animation->insertRow(0);
-//    ui->tableWidget_animation->setCellWidget(0,0,new QLineEdit);
-//    ui->tableWidget_animation->setCellWidget(0,1,new QLineEdit);
-}
-
-BasicProperty::~BasicProperty()
-{
-    delete ui;
-    delete resource;
-}
-
-void BasicProperty::on_pushButton_chooseFile_clicked()
-{
-    QString file_name = QFileDialog::getOpenFileName(this,"Open a file",QDir::homePath());
-    QPixmap pix(file_name);
-    ui->label_pic->setPixmap(pix.scaled(50,50,Qt::KeepAspectRatio));
-}
-
-void BasicProperty::dragEnterEvent(QDragEnterEvent *event)
-{
-    if(event->mimeData()->hasUrls()){
-        event->acceptProposedAction();
-    }
-    else{
-        event->ignore();
-    }
-}
-void BasicProperty::dropEvent(QDropEvent *event)
-{
-    const QMimeData *mimeData = event->mimeData();
-    if(mimeData->hasUrls()){
-        QList<QUrl> urls = mimeData->urls();
-        QString urlName = urls.at(0).toLocalFile();
-        QString fileName = urlName;
-        resource->setText(fileName);
-    }
-}
-
-//TODO: 添加表格对应的元素
-void BasicProperty::on_pushButton_addAnimation_clicked()
-{
-//    QLineEdit *nameLine = new QLineEdit(this);
-//    QLineEdit *re = new QLineEdit(this);
-//    re->setAcceptDrops(false);
-    int rowNum = ui->tableWidget_animation->rowCount();
-    ui->tableWidget_animation->insertRow(rowNum);
-    ui->tableWidget_animation->setCellWidget(rowNum,0,new QLineEdit);
-    ui->tableWidget_animation->setCellWidget(rowNum,1,resource);
-
-}
-

+ 0 - 34
basicproperty.h

@@ -1,34 +0,0 @@
-#ifndef BASICPROPERTY_H
-#define BASICPROPERTY_H
-
-#include <QMainWindow>
-#include <QLineEdit>
-
-namespace Ui {
-class BasicProperty;
-}
-
-class BasicProperty : public QMainWindow
-{
-    Q_OBJECT
-
-public:
-    explicit BasicProperty(QWidget *parent = nullptr);
-    ~BasicProperty();
-    void printTable();
-
-protected:
-    void dragEnterEvent(QDragEnterEvent *event);
-    void dropEvent(QDropEvent *event);
-
-private slots:
-    void on_pushButton_chooseFile_clicked();
-
-    void on_pushButton_addAnimation_clicked();
-
-private:
-    Ui::BasicProperty *ui;
-    QLineEdit *resource;
-};
-
-#endif // BASICPROPERTY_H

+ 0 - 324
basicproperty.ui

@@ -1,324 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>BasicProperty</class>
- <widget class="QMainWindow" name="BasicProperty">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>1014</width>
-    <height>793</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>MainWindow</string>
-  </property>
-  <widget class="QWidget" name="centralwidget">
-   <widget class="QLabel" name="label_3">
-    <property name="geometry">
-     <rect>
-      <x>12</x>
-      <y>12</y>
-      <width>53</width>
-      <height>16</height>
-     </rect>
-    </property>
-    <property name="text">
-     <string>基础属性</string>
-    </property>
-   </widget>
-   <widget class="QTabWidget" name="tabWidget">
-    <property name="geometry">
-     <rect>
-      <x>12</x>
-      <y>211</y>
-      <width>751</width>
-      <height>326</height>
-     </rect>
-    </property>
-    <property name="tabShape">
-     <enum>QTabWidget::Triangular</enum>
-    </property>
-    <property name="currentIndex">
-     <number>0</number>
-    </property>
-    <property name="elideMode">
-     <enum>Qt::ElideRight</enum>
-    </property>
-    <widget class="QWidget" name="tab_effect_2">
-     <attribute name="title">
-      <string> 状态与效果动画</string>
-     </attribute>
-     <widget class="QTableWidget" name="tableWidget_animation">
-      <property name="geometry">
-       <rect>
-        <x>20</x>
-        <y>10</y>
-        <width>561</width>
-        <height>281</height>
-       </rect>
-      </property>
-      <property name="rowCount">
-       <number>0</number>
-      </property>
-      <property name="columnCount">
-       <number>4</number>
-      </property>
-      <column/>
-      <column/>
-      <column/>
-      <column/>
-     </widget>
-     <widget class="QPushButton" name="pushButton_addAnimation">
-      <property name="geometry">
-       <rect>
-        <x>620</x>
-        <y>80</y>
-        <width>113</width>
-        <height>32</height>
-       </rect>
-      </property>
-      <property name="text">
-       <string>添加新动画</string>
-      </property>
-     </widget>
-    </widget>
-    <widget class="QWidget" name="tab_collection_2">
-     <attribute name="title">
-      <string>收集动画</string>
-     </attribute>
-     <layout class="QHBoxLayout" name="horizontalLayout_8">
-      <item>
-       <widget class="QTabWidget" name="tabWidget_collection">
-        <property name="tabPosition">
-         <enum>QTabWidget::West</enum>
-        </property>
-        <property name="tabsClosable">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <layout class="QVBoxLayout" name="verticalLayout_3">
-        <item>
-         <spacer name="verticalSpacer">
-          <property name="orientation">
-           <enum>Qt::Vertical</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>108</width>
-            <height>228</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="pushButton">
-          <property name="text">
-           <string>addCollection</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-    <widget class="QWidget" name="tab_statusConfiguration_2">
-     <attribute name="title">
-      <string>状态配置</string>
-     </attribute>
-     <layout class="QVBoxLayout" name="verticalLayout_5">
-      <item>
-       <widget class="QTabWidget" name="tabWidget_status"/>
-      </item>
-     </layout>
-    </widget>
-    <widget class="QWidget" name="tab_container_2">
-     <attribute name="title">
-      <string>容器</string>
-     </attribute>
-     <layout class="QVBoxLayout" name="verticalLayout_4">
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_9">
-        <item>
-         <widget class="QLabel" name="label">
-          <property name="text">
-           <string>容器池:</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <widget class="QTabWidget" name="tabWidget_container">
-        <property name="tabPosition">
-         <enum>QTabWidget::West</enum>
-        </property>
-        <property name="currentIndex">
-         <number>-1</number>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_10">
-        <item>
-         <widget class="QLabel" name="label_2">
-          <property name="text">
-           <string>子元素:</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_2">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <widget class="QTableWidget" name="tableWidget_container"/>
-      </item>
-     </layout>
-    </widget>
-   </widget>
-   <widget class="QWidget" name="">
-    <layout class="QHBoxLayout" name="horizontalLayout_7">
-     <item>
-      <layout class="QVBoxLayout" name="verticalLayout">
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout">
-         <item>
-          <widget class="QLabel" name="label_name">
-           <property name="text">
-            <string>标识值:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="lineEdit_name"/>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_2">
-         <item>
-          <widget class="QLabel" name="label_size">
-           <property name="text">
-            <string>大小:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="lineEdit_size"/>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_3">
-         <item>
-          <widget class="QLabel" name="label_maxlayer">
-           <property name="text">
-            <string>最大层数:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="lineEdit_maxlayer"/>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_4">
-         <item>
-          <widget class="QLabel" name="label_score">
-           <property name="text">
-            <string>分数:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="lineEdit_score"/>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_5">
-         <item>
-          <widget class="QLabel" name="label_drop">
-           <property name="text">
-            <string>掉落设定:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QSpinBox" name="spinBox_drop"/>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </item>
-     <item>
-      <layout class="QHBoxLayout" name="horizontalLayout_6">
-       <item>
-        <widget class="QLabel" name="label_icon">
-         <property name="text">
-          <string>图标:</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_pic">
-         <property name="text">
-          <string>icon</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QPushButton" name="pushButton_chooseFile">
-         <property name="text">
-          <string>选择文件</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </widget>
-  </widget>
-  <widget class="QMenuBar" name="menubar">
-   <property name="geometry">
-    <rect>
-     <x>0</x>
-     <y>0</y>
-     <width>1014</width>
-     <height>24</height>
-    </rect>
-   </property>
-  </widget>
-  <widget class="QStatusBar" name="statusbar"/>
- </widget>
- <resources/>
- <connections/>
-</ui>

+ 4 - 0
changenamedialog.cpp

@@ -1,11 +1,15 @@
 #include "changenamedialog.h"
 #include "ui_changenamedialog.h"
+#include <QDialogButtonBox>
+#include <QPushButton>
 
 ChangeNameDialog::ChangeNameDialog(QWidget *parent) :
     QDialog(parent),
     ui(new Ui::ChangeNameDialog)
 {
     ui->setupUi(this);
+    ui->buttonBox_changeName->button(QDialogButtonBox::Cancel)->setText("取消");
+    ui->buttonBox_changeName->button(QDialogButtonBox::Ok)->setText("确定");
 }
 
 ChangeNameDialog::~ChangeNameDialog()

+ 0 - 18
containerpool.cpp

@@ -1,18 +0,0 @@
-#include "containerpool.h"
-#include "ui_containerpool.h"
-#include <QComboBox>
-
-ContainerPool::ContainerPool(QWidget *parent) :
-    QWidget(parent),
-    ui(new Ui::ContainerPool)
-{
-    ui->setupUi(this);
-    ui->tableWidget_containerPool->setHorizontalHeaderLabels({"键值","资源名","初始时间线","点击时间线","影响时间线","消失时间线","消失z-Order"});
-    QComboBox* combo = new QComboBox(this);
-    ui->tableWidget_containerPool->setCellWidget(0,0,combo);
-}
-
-ContainerPool::~ContainerPool()
-{
-    delete ui;
-}

+ 0 - 22
containerpool.h

@@ -1,22 +0,0 @@
-#ifndef CONTAINERPOOL_H
-#define CONTAINERPOOL_H
-
-#include <QWidget>
-
-namespace Ui {
-class ContainerPool;
-}
-
-class ContainerPool : public QWidget
-{
-    Q_OBJECT
-
-public:
-    explicit ContainerPool(QWidget *parent = nullptr);
-    ~ContainerPool();
-
-private:
-    Ui::ContainerPool *ui;
-};
-
-#endif // CONTAINERPOOL_H

+ 0 - 71
containerpool.ui

@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ContainerPool</class>
- <widget class="QWidget" name="ContainerPool">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>818</width>
-    <height>451</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <widget class="QTableWidget" name="tableWidget_containerPool">
-   <property name="geometry">
-    <rect>
-     <x>12</x>
-     <y>54</y>
-     <width>256</width>
-     <height>192</height>
-    </rect>
-   </property>
-   <property name="rowCount">
-    <number>2</number>
-   </property>
-   <property name="columnCount">
-    <number>7</number>
-   </property>
-   <row/>
-   <row/>
-   <column/>
-   <column/>
-   <column/>
-   <column/>
-   <column/>
-   <column/>
-   <column/>
-  </widget>
-  <widget class="QWidget" name="">
-   <layout class="QHBoxLayout" name="horizontalLayout">
-    <item>
-     <widget class="QLabel" name="label_containerType">
-      <property name="text">
-       <string>容器类型:</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <widget class="QComboBox" name="comboBox_container"/>
-    </item>
-    <item>
-     <spacer name="horizontalSpacer">
-      <property name="orientation">
-       <enum>Qt::Horizontal</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>40</width>
-        <height>20</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-   </layout>
-  </widget>
- </widget>
- <resources/>
- <connections/>
-</ui>

+ 2 - 2
elemPropertyData.h

@@ -31,8 +31,7 @@ public:
         QString name;
         QString type;
         QString anim;
-        QString node;
-        QString shadow;
+        QMap<QString,QString> dataMap;
         CollAnim(QString collAnimName):name(collAnimName),type("尚未选择"),anim("尚未选择"){}
     };
     QVector<CollAnim> collAnim;
@@ -46,6 +45,7 @@ public:
         QString specialEffect;
         bool elimATLattices;
         QString triggerAction;
+        QMap<QString,QString> actionConfig;
         EventConfig():name("尚未选择"),specialEffect("尚未选择"),triggerAction("尚未选择"),consisColor(false),changeMagnitude(0),elimATLattices(false){}
     };
     struct StatusConfig{

+ 10 - 13
main.cpp

@@ -1,5 +1,6 @@
 #include "mainwindow.h"
 #include "readJsonSrc.h"
+#include "actionSettingDialog.h"
 #include <QApplication>
 #include <iostream>
 
@@ -9,17 +10,13 @@ int main(int argc, char *argv[])
     MainWindow w;
     w.show();
     return a.exec();
-    ReadJsonSrc src("/Users/menglanluo/redFiles/action.json");
-//    for(const auto &i:src.collAnimVec){
-//        std::cout<<"name:"<<qPrintable(i.name)<<std::endl;
-//        std::cout<<"id:"<<qPrintable(i.id)<<std::endl;
-//        std::cout<<"fields"<<std::endl;
-//        for(const auto &j:i.fields){
-//            std::cout<<"field name:"<<qPrintable(j.name)<<std::endl;
-//            std::cout<<"field id:"<<qPrintable(j.id)<<std::endl;
-//            std::cout<<"field type:"<<qPrintable(j.type)<<std::endl;
-//            std::cout<<"field src:"<<qPrintable(j.src)<<std::endl;
-//            std::cout<<"field default:"<<qPrintable(j.defaultVal)<<std::endl;
-//        }
-//    }
+//    ReadJsonSrc src("/Users/menglanluo/redFiles/template.json");
+//    ActionSettingDialog dialog;
+//    QVector<ReadJsonSrc::Fields> fields = src.templateMap["collAnimTemp"][0].fields;
+//    QMap<QString,QString> mapData;
+//    mapData["动画"] = "lml";
+//    mapData["节点"] = "竹节";
+//    mapData["阴影"] = "球形";
+//    dialog.setDialogUi(fields,mapData,{"lml","ddd","aaa","baf"});
+//    dialog.exec();
 }

+ 98 - 39
mainwindow.cpp

@@ -1,11 +1,9 @@
 #include "mainwindow.h"
 #include "ui_mainwindow.h"
-#include "basicproperty.h"
 #include "changenamedialog.h"
 #include "collectionwindow.h"
-#include "statusconfiguration.h"
-#include "containerpool.h"
 #include "resfiledialog.h"
+#include "actionSettingDialog.h"
 #include <QListWidgetItem>
 #include <QListWidget>
 #include <QLabel>
@@ -17,6 +15,7 @@
 #include <QMimeData>
 #include <QUrl>
 #include <QFormLayout>
+#include <QDialogButtonBox>
 
 MainWindow::MainWindow(QWidget *parent)
     : QMainWindow(parent)
@@ -34,6 +33,7 @@ MainWindow::MainWindow(QWidget *parent)
     ui->tableWidget_event->setHorizontalHeaderLabels({"事件名称","是否需要颜色一致","状态变化幅度","特效","根据格子数量消除","触发动作","触发动作设置"});
     ui->tabWidget->setCurrentIndex(0);
     ui->lineEdit_collectionType->setReadOnly(true);
+    ui->widget_dynamic->setLayout(new QFormLayout);
     updateTempRelatedUi();
 }
 
@@ -517,34 +517,28 @@ void MainWindow::onSetActionButtonClicked()
     QString action = eventTable[row].triggerAction;
     std::cout<<"row:"<<row<<std::endl;
     std::cout<<qPrintable(action)<<std::endl;
+    createSetWindow(action,row);
 }
 
 ///点击动作配置的设置按钮后生成新窗口
-void MainWindow::createSetWindow(QString actionName)
+void MainWindow::createSetWindow(QString actionName,int row)
 {
-    QWidget w;
-    w.setWindowTitle("设置触发动作属性");
     QVector<ReadJsonSrc::Template> tempVec = jsonTemp->templateMap["actionTemp"];
     int index = jsonTemp->getTemplateIndex("actionTemp",actionName);
-    QVector<ReadJsonSrc::Fields> fields = tempVec[index].fields;
-    QVBoxLayout *vlayout = new QVBoxLayout();
-    QFormLayout* formlayout = new QFormLayout();
-    for(const auto &i:fields){
-//        QHBoxLayout *hlayout = new QHBoxLayout();
-        QWidget *widget = new QWidget;
-        if(i.type == "list"){
-            if(i.src == "animations"){
-                ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
-                QStringList list;
-                for(const auto &i:elem->statusEffect) list.push_back(i.name);
-                widget = createBox(i.defaultVal,list);
-            }
-        }
-        else if(i.type == "input"){
-            widget = new QLineEdit(i.defaultVal);
-        }
-        formlayout->addRow(i.name,widget);
+    if(index == -1){
+        std::cout<<"未找到"<<qPrintable(actionName)<<"该动作配置模板"<<std::endl;
+        return;
     }
+    QVector<ReadJsonSrc::Fields> fields = tempVec[index].fields;
+    ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
+    //由于目前list只有动画,所以只做了一种情况;后期如果有多种list,可以将函数参数改为map
+    QStringList list;
+    for(const auto &i:elem->statusEffect) list.push_back(i.name);
+    ActionSettingDialog setDialog;
+    QMap<QString,QString> &dataMap = elem->statusConfig[ui->listWidget_status->currentRow()].eventConfig[row].actionConfig;
+    setDialog.setDialogUi(fields,dataMap,list);
+    setDialog.exec();
+    if(!setDialog.dataMap.empty()) dataMap = setDialog.dataMap;
 }
 
 void MainWindow::on_pushButton_addAnimation_clicked()
@@ -710,31 +704,82 @@ void MainWindow::on_comboBox_animationType_currentTextChanged(const QString &arg
     int index = ui->listWidget_collectAnim->currentRow();
     elem->collAnim[index].type = arg1;
     std::cout<<"收集动画第"<<index<<"行动画类型改变:"<<qPrintable(arg1)<<std::endl;
+    elem->collAnim[index].dataMap.clear();
+    setCollAnimWidget();
 }
 
+///设置收集动画动态界面
+void MainWindow::setCollAnimWidget()
+{
+    QString animType = ui->comboBox_animationType->currentText();
+    QFormLayout* formlayout = dynamic_cast<QFormLayout*>(ui->widget_dynamic->layout());
+    int rowCout = formlayout->rowCount();
+    for(int i=0;i<rowCout;i++) formlayout->removeRow(0);
+    if(animType == "尚未选择") return;
+    int index = jsonTemp->getTemplateIndex("collAnimTemp",animType);
+    if(index == -1) {
+        std::cout<<"未找到"<<qPrintable(animType)<<"收集动画类型对应模板"<<std::endl;
+        return;
+    }
+    QVector<ReadJsonSrc::Template> tempVec = jsonTemp->templateMap["collAnimTemp"];
+    QVector<ReadJsonSrc::Fields> fields = tempVec[index].fields;
+    ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
+    QMap<QString,QString> &data = elem->collAnim[ui->listWidget_collectAnim->currentRow()].dataMap;
+    for(const auto &i:fields){
+        if(i.type == "list"){
+            QStringList list;
+            if(i.src == "animations"){
+                for(const auto &anim:elem->statusEffect) list.push_back(anim.name);
+            }
+            QString val;
+            if(data.find(i.name) != data.end()) val = data[i.name];
+            else val = i.defaultVal;
+            QComboBox* combo = createBox(val,list);
+            connect(combo,SIGNAL(currentTextChanged(QString)),this,SLOT(onComboBoxTextChanged(QString)));
+            formlayout->addRow(i.name,combo);
+            data[i.name] = val;
+        }
+        else if(i.type == "input"){
+            QString val;
+            if(data.find(i.name) != data.end()) val = data[i.name];
+            else val = i.defaultVal;
+            QLineEdit* edit = new QLineEdit(val);
+            connect(edit,SIGNAL(editingFinished()),this,SLOT(onLineEditTextChanged()));
+            formlayout->addRow(i.name,edit);
+            data[i.name] = val;
+        }
+    }
+}
 
-void MainWindow::on_comboBox_animation_currentTextChanged(const QString &arg1)
+///收集动画动态界面下拉选项数据变化时
+void MainWindow::onComboBoxTextChanged(QString arg)
 {
-    if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_collectAnim->currentItem() ==  nullptr || isSetUi) return;
+    QComboBox *box = dynamic_cast<QComboBox*>(this->sender());
+    QFormLayout* formlayout = dynamic_cast<QFormLayout*>(ui->widget_dynamic->layout());
+    QLabel *label = dynamic_cast<QLabel*>(formlayout->labelForField(box));
+    std::cout<<qPrintable(label->text())<<": "<<qPrintable(arg)<<std::endl;
     ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
-    int index = ui->listWidget_collectAnim->currentRow();
-    elem->collAnim[index].anim = arg1;
+    elem->collAnim[ui->listWidget_collectAnim->currentRow()].dataMap[label->text()] = arg;
 }
 
-void MainWindow::on_lineEdit_node_editingFinished()
+///收集动画动态界面单行编辑数据变化时
+void MainWindow::onLineEditTextChanged()
 {
-    if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_collectAnim->currentItem() == nullptr) return;
+    QLineEdit *edit = dynamic_cast<QLineEdit*>(this->sender());
+    QFormLayout* formlayout = dynamic_cast<QFormLayout*>(ui->widget_dynamic->layout());
+    QLabel *label = dynamic_cast<QLabel*>(formlayout->labelForField(edit));
+    std::cout<<qPrintable(label->text())<<": "<<qPrintable(edit->text())<<std::endl;
     ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
-    int index = ui->listWidget_collectAnim->currentRow();
-    elem->collAnim[index].node = ui->lineEdit_node->text();
+    elem->collAnim[ui->listWidget_collectAnim->currentRow()].dataMap[label->text()] = edit->text();
 }
 
-void MainWindow::on_lineEdit_shadow_editingFinished()
+
+void MainWindow::on_comboBox_animation_currentTextChanged(const QString &arg1)
 {
-    if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_collectAnim->currentItem() == nullptr) return;
+    if(ui->listWidget_elem->currentItem() == nullptr || ui->listWidget_collectAnim->currentItem() ==  nullptr || isSetUi) return;
     ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
     int index = ui->listWidget_collectAnim->currentRow();
-    elem->collAnim[index].shadow = ui->lineEdit_shadow->text();
+    elem->collAnim[index].anim = arg1;
 }
 
 //设置收集动画显示
@@ -744,11 +789,13 @@ void MainWindow::setCollectAnimUi(QString collectAnimName)
         isSetUi = true;
         ElemPropertyData* elem = elements[ui->listWidget_elem->currentItem()->text()];
         ElemPropertyData::CollAnim collAnimData = elem->collAnim[elem->getCollAnimIndex(collectAnimName)];
-        ui->lineEdit_node->setText(collAnimData.node);
-        ui->lineEdit_shadow->setText(collAnimData.shadow);
         int typeIndex = ui->comboBox_animationType->findText(collAnimData.type);
-        if(typeIndex == -1) typeIndex = 0;
+        if(typeIndex == -1){
+            typeIndex = 0;
+            elem->collAnim[ui->listWidget_collectAnim->currentRow()].type = "尚未选择";
+        }
         ui->comboBox_animationType->setCurrentIndex(typeIndex);
+        setCollAnimWidget();
         int index = ui->comboBox_animation->findText(collAnimData.anim);
         if(index == -1) index = 0;
         ui->comboBox_animation->setCurrentIndex(index);
@@ -1362,7 +1409,11 @@ void MainWindow::updateTempRelatedUi()
             int index = ui->listWidget_collectAnim->currentRow();
             std::cout<<"当前选择的收集动画类型:"<<qPrintable(elem->collAnim[index].type)<<std::endl;
             animIndex = ui->comboBox_animationType->findText(elem->collAnim[index].type);
-            if(animIndex == -1) animIndex = 0;
+            if(animIndex == -1){
+                animIndex = 0;
+                elem->collAnim[ui->listWidget_collectAnim->currentRow()].type = "尚未选择";
+            }
+            setCollAnimWidget();
         }
         //容器池
         if(ui->listWidget_pool->currentItem() != nullptr){
@@ -1425,3 +1476,11 @@ void MainWindow::on_pushButton_delEvent_clicked()
     }
 }
 
+
+void MainWindow::on_tabWidget_currentChanged(int index)
+{
+    if(index==1 && ui->listWidget_collectAnim->currentItem()!=nullptr){
+        setCollAnimWidget();
+    }
+}
+

+ 8 - 5
mainwindow.h

@@ -74,10 +74,6 @@ private slots:
 
     void onTimelineTextChanged(const QString &arg1);
 
-    void on_lineEdit_node_editingFinished();
-
-    void on_lineEdit_shadow_editingFinished();
-
     void on_listWidget_collectAnim_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous);
 
 //    void on_tabWidget_currentChanged(int index);
@@ -142,6 +138,12 @@ private slots:
 
     void on_pushButton_delEvent_clicked();
 
+    void onLineEditTextChanged();
+
+    void onComboBoxTextChanged(QString arg1);
+
+    void on_tabWidget_currentChanged(int index);
+
 private:
     Ui::MainWindow *ui;
     QMap<QString,ElemPropertyData*> elements;
@@ -173,6 +175,7 @@ private:
     ReadJsonSrc* jsonTemp;
     //表示当前正在设置ui界面,改变时不要触发任何数据保存
     bool isSetUi = false;
-    void createSetWindow(QString actionName);
+    void createSetWindow(QString actionName,int row);
+    void setCollAnimWidget();
 };
 #endif // MAINWINDOW_H

+ 48 - 80
mainwindow.ui

@@ -187,7 +187,7 @@
            <enum>QTabWidget::Triangular</enum>
           </property>
           <property name="currentIndex">
-           <number>2</number>
+           <number>1</number>
           </property>
           <property name="elideMode">
            <enum>Qt::ElideRight</enum>
@@ -248,98 +248,66 @@
            <attribute name="title">
             <string>收集动画</string>
            </attribute>
-           <layout class="QHBoxLayout" name="horizontalLayout_22">
+           <layout class="QHBoxLayout" name="horizontalLayout_18">
             <item>
-             <widget class="QSplitter" name="splitter_2">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <widget class="QWidget" name="layoutWidget">
-               <layout class="QVBoxLayout" name="verticalLayout_3">
+             <layout class="QVBoxLayout" name="verticalLayout_3">
+              <item>
+               <widget class="QListWidget" name="listWidget_collectAnim"/>
+              </item>
+              <item>
+               <layout class="QHBoxLayout" name="horizontalLayout_21">
                 <item>
-                 <widget class="QListWidget" name="listWidget_collectAnim"/>
+                 <widget class="QPushButton" name="pushButton_addCollectAnim">
+                  <property name="text">
+                   <string>添加</string>
+                  </property>
+                 </widget>
                 </item>
                 <item>
-                 <layout class="QHBoxLayout" name="horizontalLayout_21">
-                  <item>
-                   <widget class="QPushButton" name="pushButton_addCollectAnim">
-                    <property name="text">
-                     <string>添加</string>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <widget class="QPushButton" name="pushButton_delCollectAnim">
-                    <property name="text">
-                     <string>删除</string>
-                    </property>
-                   </widget>
-                  </item>
-                 </layout>
+                 <widget class="QPushButton" name="pushButton_delCollectAnim">
+                  <property name="text">
+                   <string>删除</string>
+                  </property>
+                 </widget>
                 </item>
                </layout>
-              </widget>
-              <widget class="QWidget" name="layoutWidget">
-               <layout class="QVBoxLayout" name="verticalLayout_7">
+              </item>
+             </layout>
+            </item>
+            <item>
+             <layout class="QVBoxLayout" name="verticalLayout_7">
+              <item>
+               <layout class="QHBoxLayout" name="horizontalLayout_20">
                 <item>
-                 <layout class="QHBoxLayout" name="horizontalLayout_20">
-                  <item>
-                   <widget class="QLabel" name="label_animationType_2">
-                    <property name="text">
-                     <string>动画类型:</string>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <widget class="QComboBox" name="comboBox_animationType"/>
-                  </item>
-                 </layout>
+                 <widget class="QLabel" name="label_animationType_2">
+                  <property name="text">
+                   <string>动画类型:</string>
+                  </property>
+                 </widget>
                 </item>
                 <item>
-                 <layout class="QHBoxLayout" name="horizontalLayout_17">
-                  <item>
-                   <widget class="QLabel" name="label_animation_2">
-                    <property name="text">
-                     <string>动画:</string>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <widget class="QComboBox" name="comboBox_animation"/>
-                  </item>
-                 </layout>
+                 <widget class="QComboBox" name="comboBox_animationType"/>
                 </item>
+               </layout>
+              </item>
+              <item>
+               <layout class="QHBoxLayout" name="horizontalLayout_17">
                 <item>
-                 <layout class="QHBoxLayout" name="horizontalLayout_18">
-                  <item>
-                   <widget class="QLabel" name="label_node_2">
-                    <property name="text">
-                     <string>节点:</string>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <widget class="QLineEdit" name="lineEdit_node"/>
-                  </item>
-                 </layout>
+                 <widget class="QLabel" name="label_animation_2">
+                  <property name="text">
+                   <string>动画:</string>
+                  </property>
+                 </widget>
                 </item>
                 <item>
-                 <layout class="QHBoxLayout" name="horizontalLayout_19">
-                  <item>
-                   <widget class="QLabel" name="label_shadow_2">
-                    <property name="text">
-                     <string>阴影:</string>
-                    </property>
-                   </widget>
-                  </item>
-                  <item>
-                   <widget class="QLineEdit" name="lineEdit_shadow"/>
-                  </item>
-                 </layout>
+                 <widget class="QComboBox" name="comboBox_animation"/>
                 </item>
                </layout>
-              </widget>
-             </widget>
+              </item>
+              <item>
+               <widget class="QWidget" name="widget_dynamic" native="true"/>
+              </item>
+             </layout>
             </item>
            </layout>
           </widget>
@@ -353,7 +321,7 @@
               <property name="orientation">
                <enum>Qt::Horizontal</enum>
               </property>
-              <widget class="QWidget" name="">
+              <widget class="QWidget" name="layoutWidget">
                <layout class="QVBoxLayout" name="verticalLayout_13">
                 <item>
                  <widget class="QListWidget" name="listWidget_status"/>
@@ -385,7 +353,7 @@
                 </item>
                </layout>
               </widget>
-              <widget class="QWidget" name="">
+              <widget class="QWidget" name="layoutWidget">
                <layout class="QVBoxLayout" name="verticalLayout_15">
                 <item>
                  <layout class="QVBoxLayout" name="verticalLayout_5">

+ 3 - 0
resfiledialog.cpp

@@ -3,12 +3,15 @@
 #include <QDragEnterEvent>
 #include <QMimeData>
 #include <QUrl>
+#include <QPushButton>
 
 ResFileDialog::ResFileDialog(QWidget *parent) :
     QDialog(parent),
     ui(new Ui::ResFileDialog)
 {
     ui->setupUi(this);
+    ui->buttonBox->button(QDialogButtonBox::Cancel)->setText("取消");
+    ui->buttonBox->button(QDialogButtonBox::Ok)->setText("确定");
     QPixmap pix("/Users/menglanluo/pic.png");
     ui->label_newFile->setPixmap(pix.scaled(100,100,Qt::KeepAspectRatio));
     this->setAcceptDrops(true);

+ 0 - 16
statusconfiguration.cpp

@@ -1,16 +0,0 @@
-#include "statusconfiguration.h"
-#include "ui_statusconfiguration.h"
-
-StatusConfiguration::StatusConfiguration(QWidget *parent) :
-    QWidget(parent),
-    ui(new Ui::StatusConfiguration)
-{
-    ui->setupUi(this);
-    ui->tableWidget_event->setHorizontalHeaderLabels({"事件名称","是否需要颜色一致","状态变化幅度","特效","根据格子数量消除","触发动作"});
-//    QTableWidgetItem* item1 =
-}
-
-StatusConfiguration::~StatusConfiguration()
-{
-    delete ui;
-}

+ 0 - 22
statusconfiguration.h

@@ -1,22 +0,0 @@
-#ifndef STATUSCONFIGURATION_H
-#define STATUSCONFIGURATION_H
-
-#include <QWidget>
-
-namespace Ui {
-class StatusConfiguration;
-}
-
-class StatusConfiguration : public QWidget
-{
-    Q_OBJECT
-
-public:
-    explicit StatusConfiguration(QWidget *parent = nullptr);
-    ~StatusConfiguration();
-
-private:
-    Ui::StatusConfiguration *ui;
-};
-
-#endif // STATUSCONFIGURATION_H

+ 0 - 194
statusconfiguration.ui

@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>StatusConfiguration</class>
- <widget class="QWidget" name="StatusConfiguration">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>699</width>
-    <height>496</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <widget class="QLabel" name="label_eventConfiguration">
-   <property name="geometry">
-    <rect>
-     <x>12</x>
-     <y>190</y>
-     <width>67</width>
-     <height>16</height>
-    </rect>
-   </property>
-   <property name="text">
-    <string>事件配置:</string>
-   </property>
-  </widget>
-  <widget class="QTableWidget" name="tableWidget_event">
-   <property name="geometry">
-    <rect>
-     <x>12</x>
-     <y>214</y>
-     <width>256</width>
-     <height>192</height>
-    </rect>
-   </property>
-   <property name="rowCount">
-    <number>3</number>
-   </property>
-   <property name="columnCount">
-    <number>6</number>
-   </property>
-   <row/>
-   <row/>
-   <row/>
-   <column/>
-   <column/>
-   <column/>
-   <column/>
-   <column/>
-   <column/>
-  </widget>
-  <widget class="QWidget" name="">
-   <layout class="QHBoxLayout" name="horizontalLayout_3">
-    <item>
-     <widget class="QLabel" name="label_initialAnimation">
-      <property name="text">
-       <string>初始化动画:</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <widget class="QComboBox" name="comboBox"/>
-    </item>
-    <item>
-     <spacer name="horizontalSpacer_2">
-      <property name="orientation">
-       <enum>Qt::Horizontal</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>298</width>
-        <height>18</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QWidget" name="">
-   <layout class="QHBoxLayout" name="horizontalLayout_4">
-    <item>
-     <widget class="QLabel" name="label_clickAnimation">
-      <property name="text">
-       <string>点击动画:</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <widget class="QComboBox" name="comboBox_2"/>
-    </item>
-    <item>
-     <spacer name="horizontalSpacer_3">
-      <property name="orientation">
-       <enum>Qt::Horizontal</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>298</width>
-        <height>18</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QWidget" name="">
-   <layout class="QHBoxLayout" name="horizontalLayout_5">
-    <item>
-     <widget class="QCheckBox" name="checkBox_multiHit">
-      <property name="text">
-       <string>支持多重打击</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <spacer name="horizontalSpacer_4">
-      <property name="orientation">
-       <enum>Qt::Horizontal</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>88</width>
-        <height>20</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-    <item>
-     <widget class="QCheckBox" name="checkBox_dropable">
-      <property name="text">
-       <string>可掉落</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <spacer name="horizontalSpacer">
-      <property name="orientation">
-       <enum>Qt::Horizontal</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>138</width>
-        <height>28</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QWidget" name="">
-   <layout class="QHBoxLayout" name="horizontalLayout_6">
-    <item>
-     <widget class="QCheckBox" name="checkBox_needCollect">
-      <property name="text">
-       <string>是否需要收集</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <widget class="QLabel" name="label_cellectionType">
-        <property name="text">
-         <string>收集的目标类型:</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLineEdit" name="lineEdit_collectionType"/>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <layout class="QHBoxLayout" name="horizontalLayout_2">
-      <item>
-       <widget class="QLabel" name="label_collectAnimation">
-        <property name="text">
-         <string>收集动画:</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QComboBox" name="comboBox_collectAnimation"/>
-      </item>
-     </layout>
-    </item>
-   </layout>
-  </widget>
- </widget>
- <resources/>
- <connections/>
-</ui>