如何获取如下图所示的 多行输入的 对话框呢?
源文件:
#include "mydialog.h"
#include <QWidget>
#include <QInputDialog>
#include <QLabel>
#include <QFormLayout>
#include <QSpinBox>
#include <QDialogButtonBox>
#include <QMovie>
#include <QIcon>
myDialog:: myDialog(QString titleIcon, QString title, bool hit, QString tipsIcon, QString tips, int itemNum, QList<QString> items, QList<QLineEdit*> edits)
{
this->setFixedSize(250,160);
this->setWindowIcon(QIcon(titleIcon));
this->setWindowTitle(title);
if(hit){this->setWindowFlag(Qt::FramelessWindowHint);}
QFormLayout form(this);
QMovie temMovie(tipsIcon);
temMovie.setScaledSize(QSize(50,50));
temMovie.start();
QLabel loginGifLabel;
loginGifLabel.setMovie(&temMovie);
QLabel loginTipsLabel(tips);loginTipsLabel.setStyleSheet("QLabel{color:#65E91520;font-family:Comic Sans MS;font-weight:bold}");
form.addRow(&loginGifLabel,&loginTipsLabel);
//loginName OBjects
for(int i = 0;i<itemNum && !items.isEmpty();i++)
{
QLabel* loginNameLabel = new QLabel(items.at(i), this);loginNameLabel->setStyleSheet("QLabel{color:#65E91520;font-family:Comic Sans MS;font-weight:bold}");
edits.at(i)->setParent(this);//QLineEdit *loginNameEdit = new QLineEdit(&dialog);
form.addRow(loginNameLabel, edits.at(i));
}
// Add Cancel and OK button
QDialogButtonBox buttonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel,Qt::Horizontal, this);
form.addRow(&buttonBox);
connect(&buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(&buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
// Process when OK button is clicked
if (this->exec() == QDialog::Accepted) {
// Do something here
qDebug()<<"点击了OK!";
// for(int i = 0;i<itemNum;i++)
// {
// qDebug()<<edits.at(i)->text();
// }
}
}
// myDialog::myDialog(QWidget *parent)
// : QWidget{parent}
// {}
头文件:
#ifndef MYDIALOG_H
#define MYDIALOG_H
#include <QDialog>
#include <QWidget>
#include <QIcon>
#include <QLineEdit>
class myDialog : public QDialog
{
Q_OBJECT
public:
myDialog(QString titleIcon, QString title, bool hit, QString tipsIcon, QString tips, int itemNum, QList<QString> items, QList<QLineEdit*> edits);
public:
signals:
};
#endif // MYDIALOG_H
调用方法: