Название: Как сделать создание объекта по имени класса через QString? Отправлено: Dimatorus от Ноября 01, 2011, 12:33 Я хочу чтобы пользователь например в QLineEdit вбивал имя класса (к примеру) QPushButton. А прога считывала имя класса и создавала объект по этому имени класса. Ну либо могла обращаться к статическим функциям этого класса. Хотя может я и херней занимаюсь. Просто захотелось написать программульку, которая будет выводить иерархию классов в Qt.
Делаю так Код: QTextEdit * textEdit = new QTextEdit; В коде возможны ошибки, так как инет на другом компе и пишу по памяти. Короче для QPushButton'a она мне выводит список: QPushButton QAbstractButton QWidget QObject Вот собсвенно и вопрос. Правильно ли я делаю, есть ли другие способы сделать то что мне нужно? Как вывести всю иерархию классов (ведь к примеру QWidget наследник не только QObject, но и QPaintDevice)? Название: Re: Как сделать создание объекта по имени класса через QString? Отправлено: GreatSnake от Ноября 01, 2011, 12:55 QPaintDevice не является производным от QObject, поэтому через QMetaObject про его существование ты не узнаешь.
Название: Re: Как сделать создание объекта по имени класса через QString? Отправлено: Dimatorus от Ноября 01, 2011, 15:59 Ну это я уже понял. То есть по идее я никак не смогу сделать то что хочу?
И тогда еще вопрос. В справке Qt говорится вроде что любой объект должен быть унаследован от QObject, тогда почему есть куча объектов которые не такие? И какой смысл был их делать не наследниками QObject'a? Название: Re: Как сделать создание объекта по имени класса через QString? Отправлено: Dimatorus от Ноября 01, 2011, 16:00 И да, кстати, главный вопрос остается открытым. Как мне имея в строке имя класса, создать объект этого класса? Существует ли какой нибудь способ в Qt?
Название: Re: Как сделать создание объекта по имени класса через QString? Отправлено: GreatSnake от Ноября 01, 2011, 16:29 И тогда еще вопрос. В справке Qt говорится вроде что любой объект должен быть унаследован от QObject, тогда почему есть куча объектов которые не такие? И какой смысл был их делать не наследниками QObject'a? Наследоваться от QObject имеет смысл только когда требуется задействовать механизм signals/slots.И да, кстати, главный вопрос остается открытым. Как мне имея в строке имя класса, создать объект этого класса? Существует ли какой нибудь способ в Qt? см. QUiLoader |