Qt -从第二个窗口添加项目到主窗口的ListWidget



我有一个QDialog,在那里我可以输入一个文本,并将其添加到主窗口内的ListWidget后,我点击确定。因此,我在MainWindow类AddMessageToList(message)中创建了一个方法,其中输入的消息被添加到ListWidget中。我在ListAdder类(第二个窗口)中调用方法。但是没有任何东西被添加到ListWidget中。

代码如下:

listadder.cpp

#include "listadder.h"
#include "ui_listadder.h"
#include "mainwindow.h"
#include "ui_mainwindow.h"
ListAdder::ListAdder(QWidget *parent) :
QDialog(parent),
ui(new Ui::ListAdder)
{
ui->setupUi(this);
}
ListAdder::~ListAdder()
{
delete ui;
}
void ListAdder::on_buttonBox_accepted()
{
MainWindow mw;
QString message = ui->lnText->text();
mw.AddMessageToList(message);
}

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "listadder.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_pbt_Edit_clicked()
{
ListAdder lsadd;
lsadd.exec();
}
void MainWindow::AddMessageToList(QString message)
{
ui->lsItems->addItem(message);
}

修复!

我创建了一个QString方法GetMessage(),返回输入的文本。在MainWindow中,我调用该方法并将文本添加到ListWidget中。

listadder.cpp:

#include "listadder.h"
#include "ui_listadder.h"
#include "mainwindow.h"
#include "ui_mainwindow.h"
ListAdder::ListAdder(QWidget *parent) :
QDialog(parent),
ui(new Ui::ListAdder)
{
ui->setupUi(this);
}
ListAdder::~ListAdder()
{
delete ui;
}
QString ListAdder::GetMessage()
{
QString message = ui->lnText->text();
return message;
}
void ListAdder::on_buttonBox_accepted()
{

}

mainwindow.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "listadder.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_pbt_Edit_clicked()
{
ListAdder lsadd;
lsadd.exec();
ui->lsItems->addItem(lsadd.GetMessage());
}

相关内容

  • 没有找到相关文章

最新更新