Russian Qt Forum
Ноябрь 26, 2024, 01:35
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Картинка на форме диалога. Как?
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Картинка на форме диалога. Как? (Прочитано 7784 раз)
smartchecker
Гость
Картинка на форме диалога. Как?
«
:
Май 19, 2012, 13:30 »
Мне нужно на форму диалога поместить некую сущность в виде белого прямоугольника, при клике на котором будет открываться QFileDialog.
После выбора картинки в FileDialog'е эта картинка должна рисоваться вместо белого прямоугольника.
Какой элемент поместить на форму?
Записан
V1KT0P
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #1 :
Май 19, 2012, 13:40 »
Цитата: smartchecker от Май 19, 2012, 13:30
Мне нужно на форму диалога поместить некую сущность в виде белого прямоугольника, при клике на котором будет открываться QFileDialog.
После выбора картинки в FileDialog'е эта картинка должна рисоваться вместо белого прямоугольника.
Какой элемент поместить на форму?
QLabel
Записан
smartchecker
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #2 :
Май 19, 2012, 13:50 »
У QLabel нет click().
Записан
V1KT0P
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #3 :
Май 19, 2012, 14:06 »
Цитата: smartchecker от Май 19, 2012, 13:50
У QLabel нет click().
Зато есть "virtual void mouseReleaseEvent(QMouseEvent *ev)".
Записан
trot
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #4 :
Май 19, 2012, 14:15 »
Обычную кнопку и стилизовать её.
Записан
smartchecker
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #5 :
Май 19, 2012, 14:23 »
Цитата: trot от Май 19, 2012, 14:15
Обычную кнопку и стилизовать её.
Например как?
Обычную кнопку можно сделать flat?
Записан
iroln
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #6 :
Май 19, 2012, 16:07 »
Не надо никаких кнопок стилизованных, используй QLabel и не парь себе мозг. Для отлова события клика мишкой можно использовать EventFilter либо как тут сказали, унаследовать класс и переопределить mouseReleaseEvent.
Записан
smartchecker
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #7 :
Май 20, 2012, 12:42 »
Цитата: iroln от Май 19, 2012, 16:07
Не надо никаких кнопок стилизованных, используй QLabel и не парь себе мозг. Для отлова события клика мишкой можно использовать EventFilter либо как тут сказали, унаследовать класс и переопределить mouseReleaseEvent.
А как унаследованный элемент воткнуть в окно, которое сделано в designer'е?
Как я понимаю, если наследовать, то писать надо что-то типа
Код
C++ (Qt)
void
QLabelExtended
::
mouseReleaseEvent
(
QMouseEvent
*
)
{
emit clicked
(
)
;
}
Записан
V1KT0P
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #8 :
Май 20, 2012, 12:52 »
Цитата: smartchecker от Май 20, 2012, 12:42
А как унаследованный элемент воткнуть в окно, которое сделано в designer'е?
Взять виджет от которого наследовался, разместить в дизайнере, правой кнопкой по виджету и выбрать "Преобразовать в..". Там добавляешь имя образованного класса и имя заголовочного файла. Нажимаешь преобразовать и если сделал правильно то все будет работать.
Записан
smartchecker
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #9 :
Май 20, 2012, 16:13 »
Цитата: V1KT0P от Май 20, 2012, 12:52
Цитата: smartchecker от Май 20, 2012, 12:42
А как унаследованный элемент воткнуть в окно, которое сделано в designer'е?
Взять виджет от которого наследовался, разместить в дизайнере, правой кнопкой по виджету и выбрать "Преобразовать в..". Там добавляешь имя образованного класса и имя заголовочного файла. Нажимаешь преобразовать и если сделал правильно то все будет работать.
Сделал класс, на QLabel нажал ПКМ, выбрал Promote to и в Promoted class name вписал свой класс.
Но сигнал click() так и не появился.
Записан
V1KT0P
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #10 :
Май 20, 2012, 16:27 »
Цитата: smartchecker от Май 20, 2012, 16:13
Сделал класс, на QLabel нажал ПКМ, выбрал Promote to и в Promoted class name вписал свой класс.
Но сигнал click() так и не появился.
Ты в заголовочном файл добавил сигнал click()? Если нет то откуда же он возьмется. Если да, то выложи минимальный проект.
Записан
smartchecker
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #11 :
Май 20, 2012, 16:32 »
Цитата: V1KT0P от Май 20, 2012, 16:27
Ты в заголовочном файл добавил сигнал click()? Если нет то откуда же он возьмется. Если да, то выложи минимальный проект.
Я позаимствовал код из поста Elfebet
http://forum.vingrad.ru/index.php?showtopic=215040&view=findpost&p=1537598
Записан
V1KT0P
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #12 :
Май 20, 2012, 16:36 »
Цитата: smartchecker от Май 20, 2012, 16:32
Я позаимствовал код из поста Elfebet
http://forum.vingrad.ru/index.php?showtopic=215040&view=findpost&p=1537598
Там сигнал называется clicked. Его анализатор кода не видит или даже компилятор?
Записан
smartchecker
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #13 :
Май 20, 2012, 16:40 »
Цитата: V1KT0P от Май 20, 2012, 16:36
Там сигнал называется clicked. Его анализатор кода не видит или даже компилятор?
А как он должен называться? Вроде ж так и должен...
у QPushButton он называется clicked()
Записан
V1KT0P
Гость
Re: Картинка на форме диалога. Как?
«
Ответ #14 :
Май 20, 2012, 16:42 »
Цитата: smartchecker от Май 20, 2012, 16:40
Цитата: V1KT0P от Май 20, 2012, 16:36
Там сигнал называется clicked. Его анализатор кода не видит или даже компилятор?
А как он должен называться? Вроде ж так и должен...
у QPushButton он называется clicked()
Скинь минимальный проект(без лишнего кода), так я сразу ответ дам, а иначе можно только гадать что там не так.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...