Здравствуйте, гость ( Вход | Регистрация )
|
Obey-Kun |
2.4.2010, 2:29
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 96 Регистрация: 24.3.2010 Пользователь №: 1556 Спасибо сказали: 3 раз(а) Репутация: 0
|
Есть mainwindow. Там тулбары с экшнами, менюшки, указатель на мой QGraphicsView.
В моём унаследованном от QGraphicsView виджете есть Tool *m_tool. Tool — абстрактный класс инструмента (всякие выделения, создание наборов итемов в сцене и т. п). Во вью также есть enum'ный флаг выбранного инструмента. В зависимости от выбранного флага при нажатии ЛКМ создаётся соответственный инструмент. Так вот. Как идеологически верно менять значения флага выбранного инструмента во вью? Пока видится так: QToolBar'ы по дефолту испускают сигнал actionTriggered ( QAction * action ). В мейнвиндове я создам слот, который принимал бы этот сигнал и испускал в зависимости от нажатого экшна что-то типа signalChangeToolType(const MyView::ToolTypeEnum& type). Ну а этот сигнал принимался бы слотом во вью slotSetToolType(const ToolTypeEnum& type), что меняло бы флаг. Это правильно? И кстати, выбор инструмента вообще обычно делают в турбаре или где? P:S: делаю что-то похожее на Cad. |
|
|
|
![]() |
|
Litkevich Yuriy |
3.4.2010, 3:26
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
мало того объявления родительского сигнала в дочернем объекте не видно, обычно. Наверное это и есть причина ошибки. Дело в том, что компилятор не контролирует соединение
|
|
|
|
Obey-Kun Идеологически верный выбор инструментов. 2.4.2010, 2:29
Litkevich Yuriy Цитата(Obey-Kun @ 2.4.2010, 6:29) И ... 2.4.2010, 4:06
Obey-Kun фублин.
посмотрел на то, как панель с инструментам... 2.4.2010, 17:56
Litkevich Yuriy Цитата(Obey-Kun @ 2.4.2010, 21:56) Т... 3.4.2010, 1:31
Obey-Kun Речь шла об этом?
CMakeFiles/../.... 3.4.2010, 1:56
Litkevich Yuriy вообще-то ошибки компиляции быть не должно, просто... 3.4.2010, 2:22
Obey-Kun я балбес, декларэйшн не написал
теперь заработало
... 3.4.2010, 3:17
Litkevich Yuriy Цитата(Obey-Kun @ 3.4.2010, 7:17) QO... 3.4.2010, 3:24
Obey-Kun Экспериментировал. В MainWindow было:
area = new ... 3.4.2010, 3:26
Obey-Kun Цитатавообще соединять в дочернем объекте сигнал р... 3.4.2010, 3:28
Litkevich Yuriy Цитата(Obey-Kun @ 3.4.2010, 7:28) то... 3.4.2010, 3:46
Obey-Kun Цитатану слот - функция, просто в отличие от функц... 3.4.2010, 3:56
Litkevich Yuriy при таком подходе тебе нужно будет сделать видимым... 3.4.2010, 4:03
Obey-Kun Цитатапри таком подходе тебе нужно будет сделать в... 3.4.2010, 4:11![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 16.12.2025, 22:47 |