天天看點

QT-模态對話框擷取資料

mydialog.h:

QT-模态對話框擷取資料
QT-模态對話框擷取資料
QT-模态對話框擷取資料
QT-模态對話框擷取資料

mainwindow.h:

#ifndef MAINWINDOW_H      
#define MAINWINDOW_H      
#include <QMainWindow>      
#include<QLabel>      
class MainWindow : public QMainWindow      
{      
Q_OBJECT      
public:      
MainWindow(QWidget *parent = 0);      
~MainWindow();      
private slots:      
void setting();      
private:      
QAction *setAction;      
QLabel *label;      
};      
#endif // MAINWINDOW_H      

mydialog.h:

#ifndef MYDIALOG_H      
#define MYDIALOG_H      
#include <QDialog>      
#include<QString>      
namespace Ui {      
class myDialog;      
}      
class myDialog : public QDialog      
{      
Q_OBJECT      
public:      
explicit myDialog(QWidget *parent = 0);      
~myDialog();      
QString getProjectPath();      
QString getCompiler();      
QString getColorPlan();      
bool getIndent();      
bool getAutoComplete();      
private:      
Ui::myDialog *ui;      
};      
#endif // MYDIALOG_H      

mainwindow.cpp:

#include "mainwindow.h"      
#include<QMenuBar>      
#include<QToolBar>      
#include<QStatusBar>      
#include<QAction>      
#include "mydialog.h"      
MainWindow::MainWindow(QWidget *parent)      
: QMainWindow(parent)      
{      
setAction = new QAction(QIcon(":open.jpg"),tr("選項"),this);      
setAction->setStatusTip(tr("環境設定"));      
connect(setAction,&QAction::triggered,this,&MainWindow::setting);      
QMenu *tool=menuBar()->addMenu(tr("工具"));      
tool->addAction(setAction);      
QToolBar *toolbar=addToolBar(tr("工具"));      
toolbar->addAction(setAction);      
QStatusBar *status = statusBar();      
status->addAction(setAction);      
resize(300,200);      
label= new QLabel("",this);      
label->setGeometry(0,70,300,140);      
}      
MainWindow::~MainWindow()      
{      
}      
void MainWindow::setting()      
{      
myDialog dialog(this);      
if(dialog.exec()==QDialog::Accepted)      
{      
QString s;      
s="工程目錄: "+dialog.getProjectPath()+"\n";      
s=s+"編譯環境: "+dialog.getCompiler()+"\n";      
s=s+"高亮顯示: "+dialog.getColorPlan()+"\n";      
if(dialog.getIndent())      
s=s+"智能縮進: 是"+"\n";      
else      
s=s+"智能縮進:否"+"\n";      
if(dialog.getAutoComplete())      
s=s+"代碼補全:是"+"\n";      
else      
s=s+"代碼補全:否"+"\n";      
label->setText(s);      
}      
}      

mydialog.cpp:

#include "mydialog.h"      
#include "ui_mydialog.h"      
myDialog::myDialog(QWidget *parent) :      
QDialog(parent),      
ui(new Ui::myDialog)      
{      
ui->setupUi(this);      
}      
myDialog::~myDialog()      
{      
delete ui;      
}      
QString myDialog::getProjectPath()      
{      
QString s=ui->lineEdit->text();      
return s;      
}      
QString myDialog::getCompiler()      
{      
if(ui->radioButton->isChecked())      
return QString("VC++  6.0");      
else if(ui->radioButton_2->isChecked())      
return QString("VC++  2012");      
else      
return QString("g++");      
}      
QString myDialog::getColorPlan()      
{      
QListWidgetItem *it =ui->listWidget->currentItem();      
return it->text();      
}      
bool myDialog::getIndent()      
{      
if(ui->checkBox->isChecked())      
return true;      
else      
return false;      
}      
bool myDialog::getAutoComplete()      
{      
if(ui->checkBox_2->isChecked())      
return true;      
else      
return false;      
}