![]() |
|
![]() ![]() ![]() |
|
Tutta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
Ребята, очень нужна помощь. С qt знакома плохо, только начинаю. Написала рисование карандашиком на QPixmap, но проблема в том, то на главное окно я не могу добавить никаких кнопок и вообще виджетов. Подскажите как можно засунуть QPixmap в другой виджет на главном окне, чтоб он не мешал создавать кнопки???
|
|||
|
||||
SABROG |
|
||||||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Как это выражается? Не умеешь добавлять или их не видно при добавлении? Добавлено @ 15:51
Переопределить paintEvent только у дочернего виджета, а кнопки добавлять главному окну. Можно попробовать вызывать оригинальный обработчик, только сначала заменить это:
на это
и добавить это в конец paintEvent'a
Это сообщение отредактировал(а) SABROG - 16.5.2009, 15:56 |
||||||||||
|
|||||||||||
Tutta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
Ну да,я имела ввиду что кнопок не видно)
|
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Скорее всего потому, что ты переопределила paintEvent и не даешь дочерним виджетам/кнопкам/окнам себя нарисовать, т.к. не вызываешь оригинальные обработчик. Следует помнить, что если оригинальный обработчик вызывать вначале, то сначала будут нарисованы все дочерние виджеты, а поверх будет рисоваться твоя картинка и естественно затирать виджеты. Если же вызывать оригинальный обработчик в конце метода, то дочерние виджеты будут рисоваться поверх твоей картинки, т.е. линия от карандашека будет скрываться под дочерними виджетами. |
|||
|
||||
Tutta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
Прости но я плохо поняла. Что мне нужно делать дальше если например я хочу просто отобразить кнопку, она ничего не делает, просто чтоб была на главном окне. Что писать в коде?
|
|||
|
||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Это
Это сообщение отредактировал(а) SABROG - 16.5.2009, 16:16 |
||||
|
|||||
Tutta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
Пишет что в проекте нет класса который бы использовал форму. Это что ж получается я не могу добавить никаких виджетов?
|
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Кто пишет ![]() ![]() Понятия не имею, чтобы могла означать эта ошибка, когда в коде явно есть форма Paint и она используется:
P.S.: выкинь свою книжку |
|||
|
||||
Tutta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
У меня qt интегрирован в visual studio) пишу там) Да , окошко открывается и в нем сожно рисовать, с этим не было проблем, НО я не могу добавлять кнопки, хоть ты тресни. Если я открываю form file и там хочу добавить кнопочку , ответ - нет класса где используется эта форма. И вот поэтому я не понимаю, как быть. То ли все неправильно и я ничего не добьюсь, то ли как то совсем по особенному нужно QPixmap использовать.
|
|||
|
||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ага, плавно перешли к моему первому вопросу
Если виджет создаешь в коде, а не через формоклепку где мышкой надо таскать кнопки, то и добавлять новые виджеты надо через код - cpp'шными инструкциями, командами, кодом. Не знаю как тебе еще сказать, так короче:
Это сообщение отредактировал(а) SABROG - 16.5.2009, 16:40 |
||||
|
|||||
Tutta |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 16.5.2009 Репутация: нет Всего: нет |
Понятно.. как раз все этих замарочек хотелось избежать "формоклепкой".. я никаких команд создания виджетов не знаю просто.
|
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
А как, извини, ты собираешься в будущем писать приложения с динамическим интерфейсом? По сути формоклепка записывает расположение виджетов и их параметры в xml (ui) файл, а потом на основе его компилятор генерит те самые команды, которые мы могла бы вводить вручную. Если так хочется мышкой кнопочки потаскать, то надо делать рефакторинг (переписывать) приложение. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |