You have many options here. For example, you can expose the "ui" object of your class, and connect to it in main():
{
Q_OBJECT
public:
explicit Dialog
(QWidget *parent
= 0);
~Dialog();
Ui::Dialog *ui;
};
// and in main..
QObject::connect(w.
ui->pushButton,
SIGNAL(clicked
()),
&out,
SLOT(value
()));
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
Ui::Dialog *ui;
};
// and in main..
QObject::connect(w.ui->pushButton, SIGNAL(clicked()), &out, SLOT(value()));
To copy to clipboard, switch view to plain text mode
But that's not a proper OO design, yes ?
Another option is to define new signal in your dialog class, let's say "buttonClicked()", connect a button to this signal, and then use it in main():
{
Q_OBJECT
public:
explicit Dialog
(QWidget *parent
= 0);
~Dialog();
signals:
void buttonClicked();
private:
Ui::Dialog *ui;
};
// Dialog constructor:
{
ui = new Ui... //something
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(clicked()), this, SIGNAL(buttonClicked()));
}
// in main
QObject::connect(&w,
SIGNAL(buttonClicked
()),
&out,
SLOT(value
()));
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
signals:
void buttonClicked();
private:
Ui::Dialog *ui;
};
// Dialog constructor:
Dialog::Dialog(QWidget * parent) : QDialog(parent)
{
ui = new Ui... //something
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(clicked()), this, SIGNAL(buttonClicked()));
}
// in main
QObject::connect(&w, SIGNAL(buttonClicked()), &out, SLOT(value()));
To copy to clipboard, switch view to plain text mode
nice explanation of signals & slots can be found here : link
Bookmarks