Я действительно застрял в одной проблеме, которую хочу решить. проблема в том, что у меня есть класс для 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) Спасибо. –