Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Nelkor
20 / 20 / 5
Регистрация: 05.12.2013
Сообщений: 215
1

Видоизменяем QTextEdit

23.11.2014, 22:10. Просмотров 790. Ответов 3
Метки нет (Все метки)

Всем привет!
Понадобилась мне кнопка, которая содержала бы в себе красивый многострочный текст. QPushButton явно не то, из-за однострочности, поэтому я решил унаследовать QTextEdit. Поставил readOnly, переопределил mousePressEvent и собираюсь сделать ещё одну вещь -

Чтобы когда над такой кнопкой пролетал курсор мышки, у неё менялся цвет фона (например background-color: rgb(170, 255, 255)). А когда курсор улетает - обратно в белый. Согласитесь, смотрелось бы эстетично.

Вот только сделать этого у меня не получилось. Пытался переопределить mouseMoveEvent, требуемого результат не достиг. Может быть существует общеизвестный красивый способ по решению данной проблемы?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 22:10
Ответы с готовыми решениями:

QTextEdit
Здравствуйте! В данный момент я пишу текстовый редактор. Проблема вот в чем - в...

QTextEdit
Изините, не подскажите, как мне в QTextEdit вывести символ char?

QTextEdit
Привет подскажите пожалусто как сделать в текстовом редакторе поле на котором...

QTextEdit
Добрый вечер у меня произошла вот такая проблема. Суть: Есть у меня класс...

QTextEdit
Можно ли в QTextEdit отделить часть редактора чтобы текст не попадал в эту...

3
alexey_rage
591 / 391 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
24.11.2014, 01:35 2
Лучший ответ Сообщение было отмечено Nelkor как решение

Решение

C++ (Qt)
1
setStyleSheet(QString("QTextEdit:hover{background-color: rgb(170, 255, 255); }"));
P.S. ИМХО. QTextEdit слишком нагруженный класс для таких целей. Это можно реализовать с помощью QLabel.
И не обязательно переопределять mousePressEvent. Можно просто отлавливать стандартный сигнал clicked().
2
Nelkor
20 / 20 / 5
Регистрация: 05.12.2013
Сообщений: 215
24.11.2014, 20:59  [ТС] 3
QLabel можно сделать многострочным?

Добавлено через 5 минут
Спасибо, способ работает, но вот что мне не понятно - работает как такой вариант:
C++ (Qt)
1
setStyleSheet(QString("QTextEdit:hover{background-color: rgb(170, 255, 255); }"));
так и такой:
C++ (Qt)
1
setStyleSheet(QString(":hover{background-color: rgb(170, 255, 255); }"));
По каким правилам вообще строится строка, описывающая стиль?)
0
alexey_rage
591 / 391 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
25.11.2014, 09:33 4
Цитата Сообщение от Nelkor Посмотреть сообщение
По каким правилам вообще строится строка, описывающая стиль?)
В первом случае вы конкретно указываете, что данный стиль нужно применять к виджету QTextEdit.
QSS - это практически аналог CSS. Синтаксис очень похожий.
Подробное руководство по стилям QSS можно почитать здесь:
http://doc.crossplatform.ru/qt/latest/stylesheet-reference.html


Цитата Сообщение от Nelkor Посмотреть сообщение
QLabel можно сделать многострочным?
QLabel - многострочный и поддерживает символ переноса строки "\n".
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2014, 09:33

QTextEdit
как можно определить число строк в в текстовом документе?

QTextEdit
У меня два объекта QTextEdit например я написал в первом предложение на русском...

Работа с QTextEdit
Набрал в окне textEdit в столбик: и записал это в файл: QFile...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru