[pktools] 223/375: added pkextract_gui

Bas Couwenberg sebastic at xs4all.nl
Wed Dec 3 21:54:16 UTC 2014


This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch upstream-master
in repository pktools.

commit b74e648716629b2a39c219be8506305f7d1f7831
Author: Pieter Kempeneers <pieter.kempeneers at vito.be>
Date:   Tue Apr 1 12:18:06 2014 +0200

    added pkextract_gui
---
 qt/pkextract_gui/main.cpp                          |  11 ++
 qt/pkextract_gui/mainwindow.cpp                    | 177 +++++++++++++++++++++
 qt/{pkextract => pkextract_gui}/mainwindow.h       |  11 +-
 qt/{pkextract => pkextract_gui}/mainwindow.ui      |   8 +-
 .../pkextract_gui.pro}                             |   3 +-
 5 files changed, 197 insertions(+), 13 deletions(-)

diff --git a/qt/pkextract_gui/main.cpp b/qt/pkextract_gui/main.cpp
new file mode 100644
index 0000000..b48f94e
--- /dev/null
+++ b/qt/pkextract_gui/main.cpp
@@ -0,0 +1,11 @@
+#include "mainwindow.h"
+#include <QApplication>
+
+int main(int argc, char *argv[])
+{
+    QApplication a(argc, argv);
+    MainWindow w;
+    w.show();
+
+    return a.exec();
+}
diff --git a/qt/pkextract_gui/mainwindow.cpp b/qt/pkextract_gui/mainwindow.cpp
new file mode 100644
index 0000000..324203e
--- /dev/null
+++ b/qt/pkextract_gui/mainwindow.cpp
@@ -0,0 +1,177 @@
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+#include <QFileDialog>
+#include <QStandardItemModel>
+#include <QMessageBox>
+#include <QProcess>
+
+MainWindow::MainWindow(QWidget *parent) :
+    QMainWindow(parent),
+    ui(new Ui::MainWindow)
+{
+    ui->setupUi(this);
+    QStringList rulelist;
+    rulelist << "point" << "centroid" << "mean" << "proportion" << "minimum" << "minimum" << "maximum" << "maximum voting" << "sum";
+    ui->rule->addItems(rulelist);
+    QStringList formatlist;
+    formatlist << "ESRI Shapefile" << "SQLite";
+    ui->f->addItems(formatlist);
+
+    setDefaults();
+}
+
+MainWindow::~MainWindow()
+{
+    delete ui;
+}
+
+void MainWindow::setDefaults()
+{
+    //tab input/output
+    ui->msknodata->setText("0");
+    ui->polygon->setChecked(false);
+    ui->f->setCurrentIndex(0);
+    //tab extract
+    ui->bname->setText("B");
+    ui->rule->setCurrentIndex(0);
+
+}
+
+void MainWindow::on_actionInput_triggered()
+{
+    m_input = QFileDialog::getOpenFileName(this, "Input");
+    ui->input->setText(m_input);
+}
+
+void MainWindow::on_actionSample_triggered()
+{
+    m_sample = QFileDialog::getOpenFileName(this, "Sample");
+    ui->sample->setText(m_sample);
+}
+
+void MainWindow::on_actionMask_triggered()
+{
+    m_mask = QFileDialog::getOpenFileName(this, "Mask");
+    ui->mask->setText(m_mask);
+}
+
+void MainWindow::on_actionOutput_triggered()
+{
+    m_output = QFileDialog::getOpenFileName(this, "Output");
+    ui->output->setText(m_output);
+}
+
+void MainWindow::on_toolButton_input_clicked()
+{
+    on_actionInput_triggered();
+}
+
+void MainWindow::on_toolButton_sample_clicked()
+{
+    on_actionSample_triggered();
+}
+
+void MainWindow::on_toolButton_mask_clicked()
+{
+    on_actionMask_triggered();
+}
+
+void MainWindow::on_toolButton_output_clicked()
+{
+    on_actionOutput_triggered();
+}
+
+void MainWindow::setClassTable(const QStringList &labels)
+{
+    QStandardItemModel *model = new QStandardItemModel(labels.size(),2,this); //2 Rows and 3 Columns
+    model->setHorizontalHeaderItem(0, new QStandardItem(QString("label name")));
+    model->setHorizontalHeaderItem(1, new QStandardItem(QString("select(%)")));
+    for(int ilabel=0;ilabel<labels.size();++ilabel){
+        QStandardItem *firstCol = new QStandardItem(QString(labels[ilabel]));
+        model->setItem(ilabel,0,firstCol);
+        QStandardItem *secondCol = new QStandardItem(QString::number(100));
+        model->setItem(ilabel,1,secondCol);
+    }
+    ui->tableView_labels->setModel(model);
+}
+
+void MainWindow::on_pushButton_run_clicked()
+{
+    try{
+        QString program = "pkextract";
+        if(m_sample.isEmpty())
+            MainWindow::on_actionSample_triggered();
+
+        if(m_sample.isEmpty()){
+            QString qsError="No sample file selected";
+            throw(qsError);
+        }
+
+        if(m_input.isEmpty())
+            MainWindow::on_actionInput_triggered();
+
+        if(m_input.isEmpty()){
+            QString qsError="No input file selected";
+            throw(qsError);
+        }
+
+        QList<QComboBox*> qcomboBoxList = this->findChildren<QComboBox *>();
+
+        for(QList<QComboBox*>::ConstIterator qcbit=qcomboBoxList.begin();qcbit!=qcomboBoxList.end();++qcbit){
+            QString qsOption;
+            qsOption+=" --";
+            qsOption+=(*qcbit)->objectName();
+            program+=qsOption;
+            program+=" ";
+            program+=QString::number((*qcbit)->currentIndex());
+        }
+
+        QList<QLineEdit*> qlineEditList = this->findChildren<QLineEdit *>();
+
+        for(QList<QLineEdit*>::ConstIterator qlbit=qlineEditList.begin();qlbit!=qlineEditList.end();++qlbit){
+            if(!((*qlbit)->text().isEmpty())){
+                QString qsOption;
+                qsOption+=" --";
+                qsOption+=(*qlbit)->objectName();
+                qsOption+=" ";
+                qsOption+=(*qlbit)->text();
+                program+=qsOption;
+            }
+        }
+
+        ui->commandLineEdit->insert(program);
+
+//        QProcess *myProcess = new QProcess(parent);
+        QProcess *myProcess = new QProcess(this);
+
+        myProcess->start(program);
+        myProcess->waitForFinished(-1);
+        QString p_stdout = myProcess->readAll();
+        ui->consoleEdit->clear();
+        ui->consoleEdit->insertPlainText(p_stdout);
+        delete myProcess;
+    }
+    catch(QString qsError){
+        QMessageBox msgBox;
+        msgBox.setText(qsError);
+        msgBox.exec();
+    }
+}
+
+void MainWindow::on_toolButton_createTable_clicked()
+{
+    int nclass=ui->nclass->text().toInt();
+    QStringList labels;
+    for(int iclass=1;iclass<=nclass;++iclass){
+        QString lstring="label";
+        lstring+=QString::number(iclass);
+        labels << lstring;
+    }
+    setClassTable(labels);
+}
+
+void MainWindow::on_pushButton_restore_clicked()
+{
+    setDefaults();
+}
+
diff --git a/qt/pkextract/mainwindow.h b/qt/pkextract_gui/mainwindow.h
similarity index 81%
rename from qt/pkextract/mainwindow.h
rename to qt/pkextract_gui/mainwindow.h
index de398a7..3ae124b 100644
--- a/qt/pkextract/mainwindow.h
+++ b/qt/pkextract_gui/mainwindow.h
@@ -18,7 +18,7 @@ public:
 private slots:
     void on_actionInput_triggered();
 
-    void on_actionTraining_triggered();
+    void on_actionSample_triggered();
 
     void on_actionMask_triggered();
 
@@ -30,25 +30,22 @@ private slots:
 
     void on_toolButton_output_clicked();
 
-    void on_toolButton_training_clicked();
-
-    void on_training_returnPressed();
+    void on_toolButton_sample_clicked();
 
     void on_pushButton_run_clicked();
 
-    void on_lineEdit_2_returnPressed();
-
     void on_toolButton_createTable_clicked();
 
     void on_pushButton_restore_clicked();
 
+
 private:
     void setClassTable(const QStringList &labels);
     void setDefaults();
 
     Ui::MainWindow *ui;
     QString m_input;
-    QString m_training;
+    QString m_sample;
     QString m_mask;
     QString m_output;
 };
diff --git a/qt/pkextract/mainwindow.ui b/qt/pkextract_gui/mainwindow.ui
similarity index 98%
rename from qt/pkextract/mainwindow.ui
rename to qt/pkextract_gui/mainwindow.ui
index 5eb6f74..0144713 100644
--- a/qt/pkextract/mainwindow.ui
+++ b/qt/pkextract_gui/mainwindow.ui
@@ -24,7 +24,7 @@
      </rect>
     </property>
     <property name="currentIndex">
-     <number>1</number>
+     <number>0</number>
     </property>
     <widget class="QWidget" name="tab_2">
      <attribute name="title">
@@ -279,7 +279,7 @@
        <string>attribute (prefix) name for raster info</string>
       </property>
      </widget>
-     <widget class="QTableView" name="tableView_classes">
+     <widget class="QTableView" name="tableView_labels">
       <property name="geometry">
        <rect>
         <x>160</x>
@@ -487,7 +487,7 @@
     </property>
     <addaction name="actionInput"/>
     <addaction name="actionMask"/>
-    <addaction name="actionTraining"/>
+    <addaction name="actionSample"/>
     <addaction name="actionOutput"/>
    </widget>
    <addaction name="menuFile"/>
@@ -506,7 +506,7 @@
     <string>Input</string>
    </property>
   </action>
-  <action name="actionTraining">
+  <action name="actionSample">
    <property name="text">
     <string>Sample</string>
    </property>
diff --git a/qt/pkextract/pkextract.pro b/qt/pkextract_gui/pkextract_gui.pro
similarity index 95%
rename from qt/pkextract/pkextract.pro
rename to qt/pkextract_gui/pkextract_gui.pro
index 3f6203f..8c25274 100644
--- a/qt/pkextract/pkextract.pro
+++ b/qt/pkextract_gui/pkextract_gui.pro
@@ -15,8 +15,7 @@ TEMPLATE = app
 SOURCES += main.cpp\
         mainwindow.cpp
 
-HEADERS  += mainwindow.h \
-    ../../src/imageclasses/ImgReaderOgr.h
+HEADERS  += mainwindow.h
 
 FORMS    += mainwindow.ui
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pktools.git



More information about the Pkg-grass-devel mailing list