В общем как из основного окна получить доступ к виджетам диалогового окна, которое создано с помощью QtDesigner
вот так создаю диалоговое окно из главного (диалоговое окно - модальное):
нет, не задание значения виджитам диалогового окна, а прочитать их значения после выполнения (т.е. когда пользователь нажмет Ок, нужно узнать что он там на кликал, написал, наизменял и т.д.)
Знать всё невозможно, можно только вовремя находить то что необходимо
#include <iostream>
using namespace std;
void A::printString(const char *str)
{
if (!str)
return;
cout << str;
}
void B::boom()
{
A *a = new A();
a->printString("boom!\n");//получили доступ к закрытой функции
delete a;
}
Теперь вы сможете получать доступ к закрытым членам класса. Но лучше всего реализовать класс-потомок от QDialog и определить в нем функции доступа к необходимым данным.
Теперь вы сможете получать доступ к закрытым членам класса. Но лучше всего реализовать класс-потомок от QDialog и определить в нем функции доступа к необходимым данным.
Вообще QtDesigner создает поля как public. так что можно прост на прямую обращаться.
Вообще QtDesigner создает поля как public. так что можно прост на прямую обращаться.
Все это конечно хорошо, но лучше создать функции-обертки, т.к. во-первых, это не нарушит инкапсуляцию, а во-вторых, в случае изменения/удаления виджетов не придется переписывать весь код который обращался к этим виджетам, а нужно будет только поправить функции-обертки.
Вообще QtDesigner создает поля как public. так что можно прост на прямую обращаться.
Все это конечно хорошо, но лучше создать функции-обертки, т.к. во-первых, это не нарушит инкапсуляцию, а во-вторых, в случае изменения/удаления виджетов не придется переписывать весь код который обращался к этим виджетам, а нужно будет только поправить функции-обертки.
В этом я согласен. Только нас спрашивали - как можно, а не как правильно)).
Теперь вы сможете получать доступ к закрытым членам класса. Но лучше всего реализовать класс-потомок от QDialog и определить в нем функции доступа к необходимым данным.
т.е. в диалоговом окне, нужно определить функции которые будут возвращать значения для необходимых мне виджитов.
например:
class Dialog: public QDialog, private MyForm{
Q_OBJECT
public:
bool returnValueSamWidget(); //вернуть значения определённого виджета
};
и желательно не забыть помимо конструкторов по-умолчанию создать конструктор вида Dialog(QWidget *parent), чтобы для QDialog указать родительский виджет:
Вообще QtDesigner создает поля как public. так что можно прост на прямую обращаться.
Все это конечно хорошо, но лучше создать функции-обертки, т.к. во-первых, это не нарушит инкапсуляцию, а во-вторых, в случае изменения/удаления виджетов не придется переписывать весь код который обращался к этим виджетам, а нужно будет только поправить функции-обертки.
Qt Creator помещает экземпляр этого класса, в класс разрабатываемого класса виджета. Так что все грамотно делается.