我真的被困在一个我想解决的问题上。问题是我有一个用于QMainWindow的类,它为这个表单保存了Ui变量。现在我想能够使用该类中的Ui变量在QDialog cpp文件中编辑该窗体。我可能听起来很蠢,我真的不知道该如何解释这一点,但我有代码可能可以帮助。初始化Ui指针从QMainWindow类到QDialog类
MainWindow.h:
#include "ui_mainwindow.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
Ui::MainWindow *ui;
}
MainWindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "dialog.h"
Dialog *dialog;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
dialog = new Dialog(this);
dialog->show();
}
QDialog.cpp:
#include "ui_mainwindow.h"
#include "mainwindow.h"
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
}
Dialog::~Dialog()
{
delete ui;
}
Ui::MainWindow *mainui;
void Dialog::on_pushbutton_clicked(){
mainui->label->setText("test");
}
所以你可以从上面的代码中看到,这表明我有一个指向Ui变量的指针,但它的未初始化,因此它会导致一个SIGSEGV错误,所以如何执行初始化这个p ointer?这里的任何帮助都非常感谢,尽管这可能很简单,但我不知道该怎么做。 (我已经看过其他问题,但是我不太明白要做什么,所以请在将我链接到类似问题之前解释我要做的事情。另外,我忽略了Dialog.h文件,因为我没有认为这是需要的,请告诉我是否需要展示它,谢谢!)。
欢迎来到SO。在这里,为了标记一个答案,你只需要在正确答案上使用小绿色标记(就像你所做的那样)。没有必要编辑问题和/或标题。 –
哦,好吧,不知道(你已经知道我是新的SO:p)谢谢。 –