Вам нужны сигналы и слоты.
Вы должны подключить сигнал нажатия к пользовательскому слоту, созданному вами, вашего основного виджета.
Исправленный код, основанный на комментариях Патриса Бернассолы и Job.
В определении класса (файл .h) добавьте строки:
Q_OBJECT
private slots:
void exampleButtonClicked();
private:
QDialog *exampleDialog;
Макрос Q_OBJECT необходим, когда вы определяете сигналы или слоты в своих классах.
Переменная exampleDialog должна быть объявлена в файле определения, чтобы иметь к ней доступ в слоте.
И вы должны его инициализировать, обычно это делается в конструкторе
ExampleClass::ExampleClass()
{
//Setup you UI
dialog = new QDialog;
}
В реализации класса (файл .cpp) добавьте код, который делает то, что вы хотите, в этом случае создайте новое окно.
void ExampleClass::exampleButtonClicked()
{
exampleDialog->show();
}
А также подключить сигнал к слоту линией:
connect(exampleButton, SIGNAL(clicked()), this, SLOT(exampleButtonClicked()));
Ваш вопрос довольно простой, поэтому я предлагаю прочитать базовое руководство, чтобы вы могли быстрее прогрессировать, не дожидаясь ответов. Некоторые ссылки на полезные для меня руководства:
http://zetcode.com/tutorials/qt4tutorial/
http://doc.qt.io/archives/qt-4.7/tutorials-addressbook.html
person
Miguel López
schedule
08.06.2010