Bladeren bron

处理表格的数据存储、数据获取及数据修改响应

Menglan_Luo 2 jaren geleden
bovenliggende
commit
56ef0c9f43
4 gewijzigde bestanden met toevoegingen van 43 en 7 verwijderingen
  1. 37 4
      mainwindow.cpp
  2. 3 0
      mainwindow.h
  3. 2 2
      mainwindow.ui
  4. 1 1
      resfiledialog.ui

+ 37 - 4
mainwindow.cpp

@@ -35,6 +35,7 @@ MainWindow::~MainWindow()
     delete ui;
 }
 
+//TODO: 修改图标后更新列表对应元素的图标
 void MainWindow::on_pushButton_chooseFile_clicked()
 {
     QString file_name = QFileDialog::getOpenFileName(this,"Open a file",QDir::homePath());
@@ -69,8 +70,10 @@ void MainWindow::on_pushButton_addAnimation_clicked()
     ui->tableWidget_animation->setRowCount(rowNum+1);
     //TODO: 命名唯一性检查
     ui->tableWidget_animation->setItem(rowNum,0,new QTableWidgetItem("anim_1"));
-//    ui->tableWidget_animation->setCellWidget(rowNum,1,resource);
-    ui->tableWidget_animation->setItem(rowNum,1,new QTableWidgetItem("双击添加资源文件"));
+    QTableWidgetItem* res = new QTableWidgetItem("双击添加资源文件");
+    // 此单元格不可编辑
+    res->setFlags(res->flags() & ~Qt::ItemIsEditable);
+    ui->tableWidget_animation->setItem(rowNum,1,res);
     ui->tableWidget_animation->setCellWidget(rowNum,2,new QComboBox);
     ui->tableWidget_animation->setItem(rowNum,3,new QTableWidgetItem("0"));
 }
@@ -182,13 +185,18 @@ void MainWindow::on_tableWidget_animation_cellDoubleClicked(int row, int column)
         QString fileName = res.getResName();
         if(!fileName.isEmpty()){
             ui->tableWidget_animation->setItem(row,column,new QTableWidgetItem(fileName));
+            //TODO: 加入资源生成时间线代码
+            QComboBox* timeLine = new QComboBox;
+            timeLine->addItem("lml");
+            timeLine->addItem("xdf");
+            timeLine->addItem("cqf");
+            ui->tableWidget_animation->setCellWidget(row,column+1,timeLine);
         }
     }
-    //TODO: 处理其它单元格的修改,检查z-Order数值合法性
 }
 
 
-
+//TODO: 同步删除数据
 void MainWindow::on_pushButton_delAnimation_clicked()
 {
     QMessageBox::StandardButton reply = QMessageBox::question(this,"删除动画","确定要删除此动画吗?");
@@ -198,3 +206,28 @@ void MainWindow::on_pushButton_delAnimation_clicked()
     }
 }
 
+
+void MainWindow::on_tableWidget_animation_itemChanged(QTableWidgetItem *item)
+{
+    int column = item->column();
+    int row = item->row();
+    //名字发生修改,检查新名称唯一性
+    if(column == 0){
+        std::cout<<"name:"<<qPrintable(ui->tableWidget_animation->item(row,0)->text())<<std::endl;
+    }
+    //资源名发生修改
+    else if(column == 1){
+        std::cout<<"resource:"<<qPrintable(ui->tableWidget_animation->item(row,1)->text())<<std::endl;
+    }
+    // 时间线发生修改,居然没有反应。。。
+    else if(column == 2){
+        QComboBox *timeLine = qobject_cast<QComboBox*>(ui->tableWidget_animation->cellWidget(row,2));
+        std::cout<<"timeLine:"<<qPrintable(timeLine->currentText())<<std::endl;
+    }
+    //z-Order值发生修改,检查z-Order值合法性
+    else{
+        std::cout<<"z-Order:"<<qPrintable(ui->tableWidget_animation->item(row,3)->text())<<std::endl;
+    }
+}
+
+

+ 3 - 0
mainwindow.h

@@ -3,6 +3,7 @@
 
 #include <QMainWindow>
 #include <QListWidgetItem>
+#include <QTableWidgetItem>
 
 QT_BEGIN_NAMESPACE
 namespace Ui { class MainWindow; }
@@ -51,6 +52,8 @@ private slots:
 
     void on_pushButton_delAnimation_clicked();
 
+    void on_tableWidget_animation_itemChanged(QTableWidgetItem *item);
+
 private:
     Ui::MainWindow *ui;
     QLineEdit *resource;

+ 2 - 2
mainwindow.ui

@@ -479,7 +479,7 @@
                 </widget>
                </item>
                <item>
-                <widget class="QComboBox" name="comboBox"/>
+                <widget class="QComboBox" name="comboBox_initAnim"/>
                </item>
                <item>
                 <spacer name="horizontalSpacer_7">
@@ -506,7 +506,7 @@
                 </widget>
                </item>
                <item>
-                <widget class="QComboBox" name="comboBox_2"/>
+                <widget class="QComboBox" name="comboBox_clickAnim"/>
                </item>
                <item>
                 <spacer name="horizontalSpacer_4">

+ 1 - 1
resfiledialog.ui

@@ -39,7 +39,7 @@
     </rect>
    </property>
    <property name="text">
-    <string>修改资源文件为:</string>
+    <string>拖拽添加资源文件:</string>
    </property>
   </widget>
   <widget class="QLabel" name="label_newFile">