Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QLineEdit изменение вида при смене enabled
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
FantasyOr
Уважаемые, добрый день.
Есть желание, а точнее потребность:
при установке QLineEdit в не редактируемое состояние, шрифт сереет, и становится плохо читаемым на так же посеревшем фоне. Нужно, чтоб цвет шрифта оставался черным.
правильно ли я понимаю, что нужно поработать с QPalette?
Andrewshkovskii
Поставь ему такой CSS :
.QLineEdit{
color : black;
}
FantasyOr
как говорят в аниме: "nan desu ka" - "шо зо нах (о_О)"
Спасибо большое? но CSS мне не знаком, и даже не представляю себе где его ставить, а средствами Qt можно это решить + нужна не только данная настройка, но более извращенская.
Дайте другой вектор. Готов работать с QStyle, но опять же только знаю, что есть такое.
Litkevich Yuriy
Цитата(FantasyOr @ 8.12.2010, 22:02) *
но CSS мне не знаком, и даже не представляю себе где его ставить
читай доку
Andrewshkovskii
Вот здесь написано как установить CSS для виджета (в исходнике), либо в дизайнере правой кнопкой по виджету change styleSheet (изменить styleSheet )
FantasyOr
Всем спасибо. Разобрался.
FantasyOr
Разобрался, но не очень =( :

QTextEdit teRout = new QTextEdit(this);
teRout->setStyleSheet("border-width: 20px; color: blue; border-radius: 10px;");

синий цвет применяется, а границы не увеличиваются и не скругляются... почему так может быть?
Andrewshkovskii
А не много ли тебе граница-то в 20 пикселей, и закругление радиуса в 10? Поставь меньше! Даже 2 пикселя толщины уже выглядит не красиво :) Вот стандарт почитай о границах в цсс..
Хотя меняться должно.. сейчас проверю : )
Вот так вот будет работать :
QTextEdit{
border : 20px solid black;
color: blue;
border-radius: 10px;
}
FantasyOr
я смотрел вот это http://doc.crossplatform.ru/qt/4.4.3/stylesheet.html

"Единственной проблемой остается отсутствие реакции кнопки при нажатии на нее. Исправим это, указав слегка другой цвет фона и использование другого стиля рамки.
QPushButton#evilButton {
background-color: red;
border-style: outset;
border-width: 2px;
border-radius: 10px;
border-color: beige;
font: bold 14px;
min-width: 10em;
padding: 6px;
}"
не думал, что у кнопки и текстового поля должны быть разные описания рамки.

Код:
teRout->setStyleSheet("border : 1px solid black; color: blue; border-radius: 10px;");

дал такой результат:


видимо есть какие-то ограничения для отображения текста без урезания в закруглениях

Andrewshkovskii, Ваша ссылка очень интересна, сохранил буду пользоваться
Andrewshkovskii
Стандарт описания свойств для всех компонентов одинаков.
Я просто использовал сокращенный вариант записи свойства границы, а ты ,в посте , привел вариант с селектором и развернутым вариантом.
А скругление рамки не появляется из-за того, что один из компонентов QTextEdit-а (а он состоит из нескольких : QWidget, QFrame, QAbstractScrollArea и сам QTextEdit) "налезает" на рамки, и что бы этого не происходило, надо добавить "внутренний отступ" содержимого от рамок (св-во padding) , вот так :
QTextEdit{
border: 1px solid black;
border-radius : 5px;
padding : 2px;
}

Но теперь появилась проблема - этот отступ прозрачен, и через него мы видимо "фон" виджета, на котором расположен наш QTextEdit, что бы убрать это дело, добавим свойство заднего фона для нашего QTextEdit, и теперь это будет выглядеть вот так :
QTextEdit{
border: 1px solid black;
border-radius : 5px;
padding : 2px;
background : white;
}
FantasyOr
Даааа получилось, однако наука...
очень благодарен Вам за разъяснения
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.