我真的被困在一個我想解決的問題上。問題是我有一個用於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)謝謝。 –