我有一个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());
}