2009-09-03 5 views
4

я получил следующий пользовательский виджет:Добавление пользовательских виджетов в Qt Designer

class QDESIGNER_WIDGET_EXPORT MySpecialButton : public QAbstractButton 
{ 
    Q_OBJECT 
    ...etc... 
}; 

Qt Designer распознает этот виджет, и я могу разместить его на моей форме без проблем. Однако при просмотре в редакторе свойств видны только свойства QObject и QWidget. Как заставить Qt Designer распознавать, что это также объект QAbstractButton?

ответ

2

Во-первых, убедитесь, что у вас есть макрос Q_OBJECT в определении вашего класса. Также убедитесь, что файл был правильно moc ред. Если ни одна из них не поможет, вы можете выяснить, как объявляются QPushButton и QToolButton, чтобы узнать, дает ли это какие-либо подсказки.

Наконец, если вам нужен подход бензопилы, а не скальпель, вы можете определить свойства, которые вы хотите установить в своем классе, предоставляя функции в качестве тех, которые требуют свойства. Посмотрите на макрос Q_PROPERTY.

+0

Спасибо, но у меня есть макрос Q_OBJECT (изменен мой вопрос для ясности). Я получал ошибки компилятора, пока не исправил это. Я посмотрел на QPushButton, и я не видел ничего особенного в этом. Я собираюсь оставить этот вопрос на некоторое время, и если я никогда не получу решение, я думаю, я поеду на бензопилу. – moswald

+0

Кстати, я пошел по бензопилу. Я никогда не видел разницы между моим пользовательским классом и 'QPushButton'. – moswald