Не буду новую тему создавать, эта вроде подходит. У меня есть пара вопросов по Qt.
1. В QtCreator создаю gui приложение, в дизайнере делаю форму, допустим, с одной кнопкой. Связываю так: в класс формы, созданной автоматом, добавляю новый слот:
Код: Выделить всё
private slots: // Это в mainwindow.h
void buttonClick();
// и реализацию в mainwindow.cpp
void MainWindow::buttonClick()
{
this->close() // к примеру...
}
Далее связываю в конструкторе главной формы:
Код: Выделить всё
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(buttonClick()));
}
Всё работает. Собственно вопрос: правильно ли я делаю? В смысле, если в приложении будет много форм, в дальнейшем, чтоб что-то добавить/убрать проблем не будет? Или есть другой, более правильный подход?
Второй вопрос по диалогам. Ну, к примеру, я хочу по нажатию кнопки вызвать QFileDialog, вроде проблем нет:
Код: Выделить всё
QFileDialog *openDialog = new QFileDialog(this); // если родителя не указать, он существует "сам по себе"
openDialog.show();
В этом случае создаётся новый объект, но удалится ли он после закрытия? Просто меня смутило вот что:
Код: Выделить всё
QFileDialog openDialog(this);
openDialog.show();
В этом случае деструктор явно вызывается, т.к. диалог создаётся, показывается, и тут же исчезает. А в первом случае - не понятно, если я 10 раз его вызову и закрою, не останется ли 10 "потерянных" копий объекта в памяти?