[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