qt 获取动态生成的qlineedit值

来源:互联网 发布:维多利亚女王 知乎 编辑:程序博客网 时间:2024/05/23 10:57

1.头文件代码

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QSettings>#include <QString>#include <QPushButton>#include <QLabel>#include <QLineEdit>#include <QWidget>#include <QFrame>#include <QObject>#include <QTableWidget>#include <QTableWidgetItem>#include <QLayout>#include <QScrollArea>#include <QGroupBox>#include <QFont>#include <QDebug>#include <QMap>#include <QAction>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{    Q_OBJECTpublic:    explicit MainWindow(QWidget *parent = 0);    ~MainWindow();private slots:    void addbutton_Clicked();    void deletebutton_Clicked();    void lineedit_textChanged(QString text);private:    Ui::MainWindow *ui;public:    QVBoxLayout *middlelayout;    QList<QLineEdit*> qlist;    std::vector<QString> users;};#endif // MAINWINDOW_H

二.源文件

#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    //ui->setupUi(this);    QWidget *window = new QWidget(this);    QVBoxLayout *mainlayout = new QVBoxLayout;    middlelayout = new QVBoxLayout;    QHBoxLayout *buttonlayout = new QHBoxLayout;    QPushButton *addbutton = new QPushButton;    QPushButton *deletebutton = new QPushButton;    addbutton->setText("ADD");    deletebutton->setText("Delete");    buttonlayout->addWidget(addbutton);    buttonlayout->addWidget(deletebutton);    buttonlayout->setAlignment(Qt::AlignTop);    mainlayout->addLayout(buttonlayout);    mainlayout->addLayout(middlelayout);    window->setLayout(mainlayout);    setCentralWidget(window);    connect(addbutton, SIGNAL(clicked()), SLOT(addbutton_Clicked()));    connect(deletebutton, SIGNAL(clicked()), SLOT(deletebutton_Clicked()));}MainWindow::~MainWindow(){    //delete ui;}void MainWindow::addbutton_Clicked(){    QLineEdit *lineedit = new QLineEdit;    qlist.push_back(lineedit);    middlelayout->addWidget(lineedit);    lineedit->setObjectName("lineedit"+QString::number(qlist.count()));    users.resize(qlist.count());    connect(lineedit, SIGNAL(textChanged(QString)), SLOT(lineedit_textChanged(QString)));}void MainWindow::deletebutton_Clicked(){    QWidget *child;    if (!middlelayout->isEmpty())    {        if ((child = middlelayout->takeAt(qlist.count()-1)->widget()) != 0)        {            delete child;            qlist.removeLast();        }    }}void MainWindow::lineedit_textChanged(QString text){    QObject *obj = QObject::sender();    QString senderobjName = obj->objectName();    int isTextchanged = senderobjName.indexOf("lineedit") != -1;    if (isTextchanged)    {        QStringList list = senderobjName.split("lineedit");        unsigned int index = list[1].toInt();        users[index] = text;        qDebug() << users[index];    }}

三.效果

这里写图片描述

原创粉丝点击