Можно указатель на модель сделать public..... можно запихнуть указатель в конструктор нового класса
Я так и делаю
, самый естественный в простейшем случае способ.. конечно по моему скромному мнению:)
//класс главного окошка приложения
class energy_MainWin : public QMainWindow
{
Q_OBJECT
public:
energy_MainWin(QWidget *parent = 0);
~energy_MainWin();
Ui::energy_MainWin *ui;
private:
// Ui::energy_MainWin *ui;
......../дофига чего
//указатель на модель для работы с таблицами площадок, городов и устройств
QSqlRelationalTableModel * sites_model;
......../еще дофига чего
}
диалог редактирования должен получать этот указатель как параметр при вызове конструктора, то есть:
class Towns_dialog : public QDialog, public Ui::Towns_dialogClass
{
Q_OBJECT
public:
Towns_dialog(QWidget *parent = 0, QSqlRelationalTableModel * model_in_dialog = 0);
~Towns_dialog();
Ui::Towns_dialogClass dialog_ui;
............//дофига всякой фигни
}
При вызове конструктора передаем указателя:
//где-нибудь в главное_окошко.cpp
if (!dialog_sites)
{
dialog_sites = new SitesDialog(this, sites_model);
}
Если используем QDataWidgetMapper, то с ним стоит обойтись так же, чтобы потом "спрятать" внутри конструктора нового класса привинчивание его к lineEdit'ам например.