Можно ли подключить слоты объекта модели к графическому интерфейсу в QT4 -Designer? - PullRequest
2 голосов
/ 14 июня 2010

Поэтому я пытаюсь построить окно Model-View, используя QTDesigner и C ++.

По этой причине я создал производный класс QOBject в качестве моей модели.Он предоставляет слоты и сигналы для доступа к нему, например: setFileName (QString) или fileNameChanged (QString).

Я немного познакомился с использованием перетаскивания сигналов в QTDesigner и нашел его довольно симпатичным VA-Smalltalk-Like.Через некоторое время мне стало интересно, смогу ли я также подключить свою модель к этому.Поэтому возможно ли как-то ввести мой объект модели в Window / GUI и позволить QTDesigner подключать сигналы и слоты от объекта модели к GUI.

По сути: напишите для меня:

connect( model, SIGNAL(fileNameChanged(QString)), ui->labelFn, SLOT(setText(QString)))
connect( ui-textEdit2, SIGNAL(textChanged(QString)), model, SLOT(setFileName(QString)))

Спасибо за объяснение

Ответы [ 3 ]

1 голос
/ 17 июня 2010

Как сказал jopa, если вы хотите сделать это в Designer, вам нужно сообщить Designer о вашем компоненте, что, вероятно, имеет смысл только в том случае, если вы часто будете использовать его повторно.ИМХО, конструктор отлично подходит для создания прототипов или создания первоначального дизайна пользовательского интерфейса, но не так хорош для длительного обслуживания.Несмотря на то, что Designer очень мощный, есть ряд опций, которые не отображаются через интерфейс.

Я предлагаю изучить возможности автоматического подключения Qt.Он пытается установить соединение исключительно по соглашению об именах слотов.Подробнее здесь .Мне не терпелось попробовать это, но мы только входим в наш проект конвертации Qt 4, и у меня еще не было шанса.

0 голосов
/ 23 сентября 2011

Я никогда не использую редактор сигналов и слотов Qt Creator, я всегда использую connect.Гораздо проще иметь все соединения сигналов и слотов в одном месте, независимо от того, считают ли они используемую библиотеку (например, readyRead () из QIODevice) или графический интерфейс пользователя (indexChanged (int)).

Это делает код более читабельным + У меня возникли большие проблемы с редактором сигналов и слотов.

0 голосов
/ 17 июня 2010

Единственный способ ввести новые типы объектов в Designer - через плагин, но это работает только для виджетов, через QDesignerCustomWidgetCollectionInterface. Было бы неплохо, если бы Designer разрешал подключения к другим объектам так же, как это позволяет Apple Interface Builder, но это невозможно. На данный момент нам осталось подключить такие сигналы в конструкторе формы.

...