I'made a little example to explain me in the best way, I created a simple GUI with a menu and a label, when i click on the menu voice i'd like to change the text label. To do this i created a class doSmt.h that perform this work.
I want to pass a QMainWindow pointer to the class doSmt to have the access at all the attributes defined in ui_guiwid.h.
In the class guiwid i cant acces to them simply with ui.nomeAttribute, i'd like to do the same thing into doSmt class. Thx
ui_guiwid.h
#ifndef UI_GUIWID_H
#define UI_GUIWID_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QLabel>
#include <QtGui/QMainWindow>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QStatusBar>
#include <QtGui/QWidget>
class Ui_MainWindow
{
public:
{
if (MainWindow->objectName().isEmpty())
MainWindow
->setObjectName
(QString::fromUtf8("MainWindow"));
MainWindow->resize(420, 510);
actionChangeLabel
= new QAction(MainWindow
);
actionChangeLabel
->setObjectName
(QString::fromUtf8("actionChangeLabel"));
centralwidget
= new QWidget(MainWindow
);
centralwidget
->setObjectName
(QString::fromUtf8("centralwidget"));
label
= new QLabel(centralwidget
);
label
->setObjectName
(QString::fromUtf8("label"));
label
->setGeometry
(QRect(20,
10,
321,
21));
MainWindow->setCentralWidget(centralwidget);
menubar
->setObjectName
(QString::fromUtf8("menubar"));
menubar
->setGeometry
(QRect(0,
0,
420,
28));
menuFIle
= new QMenu(menubar
);
menuFIle
->setObjectName
(QString::fromUtf8("menuFIle"));
MainWindow->setMenuBar(menubar);
statusbar
->setObjectName
(QString::fromUtf8("statusbar"));
MainWindow->setStatusBar(statusbar);
menubar->addAction(menuFIle->menuAction());
menuFIle->addAction(actionChangeLabel);
retranslateUi(MainWindow);
} // setupUi
{
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
#endif // UI_GUIWID_H
#ifndef UI_GUIWID_H
#define UI_GUIWID_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QLabel>
#include <QtGui/QMainWindow>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QStatusBar>
#include <QtGui/QWidget>
class Ui_MainWindow
{
public:
QAction *actionChangeLabel;
QWidget *centralwidget;
QLabel *label;
QMenuBar *menubar;
QMenu *menuFIle;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QString::fromUtf8("MainWindow"));
MainWindow->resize(420, 510);
actionChangeLabel = new QAction(MainWindow);
actionChangeLabel->setObjectName(QString::fromUtf8("actionChangeLabel"));
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
label = new QLabel(centralwidget);
label->setObjectName(QString::fromUtf8("label"));
label->setGeometry(QRect(20, 10, 321, 21));
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName(QString::fromUtf8("menubar"));
menubar->setGeometry(QRect(0, 0, 420, 28));
menuFIle = new QMenu(menubar);
menuFIle->setObjectName(QString::fromUtf8("menuFIle"));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName(QString::fromUtf8("statusbar"));
MainWindow->setStatusBar(statusbar);
menubar->addAction(menuFIle->menuAction());
menuFIle->addAction(actionChangeLabel);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
actionChangeLabel->setText(QApplication::translate("MainWindow", "Change Label", 0, QApplication::UnicodeUTF8));
label->setText(QApplication::translate("MainWindow", "TextLabel", 0, QApplication::UnicodeUTF8));
menuFIle->setTitle(QApplication::translate("MainWindow", "File", 0, QApplication::UnicodeUTF8));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
#endif // UI_GUIWID_H
To copy to clipboard, switch view to plain text mode
guiwid.h
#include <QtGui/QWidget>
#include "ui_guiwid.h"
{
Q_OBJECT
public:
guiwid();
~guiwid();
private slots:
void callDoStm();
private:
Ui::MainWindow ui;
};
#include <QtGui/QWidget>
#include "ui_guiwid.h"
class guiwid : public QMainWindow
{
Q_OBJECT
public:
guiwid();
~guiwid();
private slots:
void callDoStm();
private:
Ui::MainWindow ui;
};
To copy to clipboard, switch view to plain text mode
guiwid.cpp
#include "guiwid.h"
#include "doSmt.h"
#include <QtGui/QWidget>
guiwid::guiwid()
{
ui.setupUi(this);
connect(ui.actionChangeLabel, SIGNAL(triggered()), this, SLOT(callDoStm()));
}
guiwid::~guiwid()
{
}
void guiwid::callDoStm(){
doSmt *ds = new doSmt(this);
ds->changeLabel();
}
#include "guiwid.h"
#include "doSmt.h"
#include <QtGui/QWidget>
guiwid::guiwid()
{
ui.setupUi(this);
connect(ui.actionChangeLabel, SIGNAL(triggered()), this, SLOT(callDoStm()));
}
guiwid::~guiwid()
{
}
void guiwid::callDoStm(){
doSmt *ds = new doSmt(this);
ds->changeLabel();
}
To copy to clipboard, switch view to plain text mode
doSmt.h
#include <QtGui/QWidget>
#include <QMainWindow>
class doSmt
{
public:
~doSmt();
public:
void changeLabel();
};
#include <QtGui/QWidget>
#include <QMainWindow>
class doSmt
{
public:
doSmt(QMainWindow *ui);
~doSmt();
public:
void changeLabel();
QMainWindow *mainWindow;
};
To copy to clipboard, switch view to plain text mode
doSmt.cpp
#include "doSmt.h"
#include <QtGui/QWidget>
{
this->mainWindow = ui;
}
doSmt::~doSmt()
{
}
void doSmt::changeLabel()
{
// i can't access to the MainWindow attributes with mainWindow->
}
#include "doSmt.h"
#include <QtGui/QWidget>
doSmt::doSmt(QMainWindow *ui)
{
this->mainWindow = ui;
}
doSmt::~doSmt()
{
}
void doSmt::changeLabel()
{
// i can't access to the MainWindow attributes with mainWindow->
}
To copy to clipboard, switch view to plain text mode
Bookmarks