Это мой первый вопрос здесь, поэтому я стараюсь не звучать глупо!
ОБЪЯСНЕНИЕ:
У меня есть главное окно в Qt, в котором есть кнопка для создания (под?) Окон в главном окне. Это может быть сделано столько раз, сколько пользователь хочет, и каждое подокно отображает один и тот же набор свойств / элементов. Я подумал, что написание класса для хранения всех этих свойств было бы разумным способом сделать это (это унаследовало бы класс главного окна), поскольку каждый экземпляр дочернего окна автоматически получал бы свойства. Я использую слот для создания каждого экземпляра.
ВОПРОС:
Помимо желаемых свойств, что я могу добавить к дочернему классу окна, чтобы Qt знал, что если я создаю объект такого типа, он должен открыть окно?
Например, скажем, я реализовал все свойства дочернего окна в заголовочном файле, который выглядит примерно так:
#include <QObject>
#include <QDialog> //Not sure about this
class ChildWindow : public ParentWindow
{
Q_OBJECT
public:
ChildWindow(QObject* parent);
~ChildWindow();
//Remaining properties like QSpinBox, Radio buttons etc
}
как тогда я реализую свой слот? Как это?
void Parent::Slot()
{
ChildWindow* window;
window = new ChildWindow(this);
window->show()
}
Моя проблема в том, что я не вижу код, который указывает, что window
это отдельное окно. Я вижу, что это типа ChildWindow
, но только в том числе QDialog
дать ему show()
функциональность?
РЕДАКТИРОВАТЬ:
Я понимаю, что первым предложением было бы попробовать и посмотреть, работает ли это, но в маловероятном сценарии, что это работает, я бы ничего не узнал, и я все еще не знал бы, почему это работало, и если бы это не так, я бы вернулся здесь задают этот же вопрос. Надеюсь, вы, ребята, понимаете.
РЕДАКТИРОВАТЬ 2:
error C2039: 'show' : is not a member of 'ChildWindow'
Так что я думаю, в том числе QDialog
не сделал трюк
РЕДАКТИРОВАТЬ 3:
Если я добавлю это к ChildWindow
конструктор
QDialog* child;
child = new QDialog;
child->show()
Должен ли я сделать то же самое в определении слота?
Задача ещё не решена.
Других решений пока нет …