Название: Рисование в Qt 3.3.6 Отправлено: andi от Ноябрь 30, 2006, 12:45 Здрасте всем. Ни как не получается решить следующую задачу.
Нужна в некоторый фрейм (например QButtonGroup) вывести изображение (некоторая мнемоническая схема в формате .png). И при этом там должны быть радиокнопки. И при щелканье разных кнопок изображение должно меняться. Изменение должно выглядеть так что в произвольное место должна нарисоваться часть другого изображения (типа поверх нарисоваться кружочек другого цвета, тоже из файла .png). Причем во втором файле рядом нарисовано 4 кружочка, и хотелось бы чтобы можно было хватать любой из этих кусочков и ложить в любое место первой картинки. Есть ли какой-то стандартный прием позволяющий делать такую штуку. Название: Рисование в Qt 3.3.6 Отправлено: Dendy от Ноябрь 30, 2006, 16:21 Создаёшь свой виджет рядом с переключаетлями. Загружаешь картинки в QImage. Рисуешь их в paintEvent() с помощью QPainter::drawImage().
Название: Рисование в Qt 3.3.6 Отправлено: andi от Декабрь 01, 2006, 12:14 Понятно, попробую.
добавлено спустя 6 часов 43 минуты: Вобщем все получилось, если вдруг кто-то появится типа меня, выложу код. Код:
Если будут нужны пояснения - пишите сюда, отвечу. Название: Рисование в Qt 3.3.6 Отправлено: andi от Декабрь 07, 2006, 14:08 Продолжу тему.
Чего то не догоняю с сигналами. Отнаследовался от QButtonGroup В paintEvent нарисовал картинки. В конструкторе разместил радиокнопки вокруг картинки. Смастерил слот для обработки кнопок. Подключаю родительский сигнал (clicked(int)) к своему слоту (в моем уже классе). И нифига. Ничего не происходит, даже понять не могу заходит или нет (и в метку на виджете пытаюсь выводить и тупо cout<< в консоль). Причем connect делал как в конструкторе (в конце), так и там где выделял память под экземпляр. Причем, когда снаружи коннект делаю к стороннему слоту все работает. Но сам на себя никак. Или он и не должен сам на себя работать? Или должен, только я чего то не правильно делаю? добавлено спустя 43 минуты: Ошибка нашлась, но что делать непонятно... похоже мои познания в с++ тут закончились (не успев начаться). Код: class DiselImage : public QButtonGroup{ Хочу в конструктор написать такую строку: connect(this,SIGNAL(clicked(int)),this,SLOT(slotButton(int))); При запуске не может найти: QObject::connect: No such slot QButtonGroup::slotButton(int) QObject::connect: (sender name: 'unnamed') QObject::connect: (receiver name: 'unnamed') Похоже вместо this надо что-то другое, а что? Название: Рисование в Qt 3.3.6 Отправлено: Dendy от Декабрь 07, 2006, 14:32 Q_OBJECT забьІл добавить.
Название: Рисование в Qt 3.3.6 Отправлено: andi от Декабрь 08, 2006, 05:36 Блин, точно!!!
Чего то я прогнал... Спасибо, за внимательность. |