Зачем вам GlobalVaribles.h?
TimesSettingsButtonClicked - внутренняя переменная окна регистрации, а NumberOfTab и SummOfTabAndTypeOfQuestionForCurrentTab - главного окна. Инкапсулируйте их в нужные классы форм.
Далее.
Не следует создавать главное окно в окне регистрации. Где оно будет удаляться?
Тогда уж допишите так: newMainWindow->setAttribute(Qt::WA_DeleteOnClose);
А лучше так:
OTS_AuthorizationWindow w;
if(w.exec() != QDialog::Accepted)
return -1;
OTS_AuthorizationWindow w;
w.show();
По главному:
Я не сразу вас понял. На главной форме много вопросов (по табам). В каждом табе вопрос, ответ, неск-ко вариантов и кнопок управления.
В таком случае, выделение класса вопроса было правильным решением. Еще лучше сделать класс вопроса CQuestion (и ответа CAnswer), содержащий только данные по нему и свой виджет (QuestionWidget), умеющий их отображать.
В таком случае, при добавлении нового вопроса, вы создаете таб, добавляете на него QuestionWidget. Он в свою очередь берет данные из своего экземпляра CQuestion и генерирует нужное количество виджетов для их отображения.
Для того, чтобы добавлять динамическое количество ответов на вопросы вы должны в QuestionWidget сохранять указатель на QLayout где они все будут размещаться (то, что я имел в виду под "динамическим контейнером") и применять к нему addWidget по мере необходимости.
И еще: используйте редактор форм. На вкус и цвет, конечно, фломастеры разные и кому-то нравится писать все руками, но думаю, ясности в коде будет больше.
ЗЫ: забавно код оформляете
void foo()
{
//code here
}
var= val;
varvar= valval;
varvarvar= vvv;
ЗЫЫ: не нужно сохранять в хедере указатели на виджеты, которые вам не нужны для работы. Родительский виджет удалит все дочерние самостоятельно.