crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Steklova Olga
  опции профиля:
сообщение 2.12.2011, 19:20
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


Здравствуйте :)
Подскажите, пожалуйста, как временно изменить цвет текста и фона в QSpinBox и QTimeEdit ?
Можно это сделать с помощью QPalette ?

Например, чтобы в QLineEdit изменить цвет текста и фона,
задаю цвета для QPalette::Text и QPalette::Base его палитры:
QPalette pal_lineEdit(this->palette());
pal_lineEdit.setColor(QPalette::Text, Qt::red); //цвет текста
pal_lineEdit.setColor(QPalette::Base, Qt::yellow); //цвет фона
lineEdit->setPalette(pal_lineEdit);

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Steklova Olga
  опции профиля:
сообщение 5.12.2011, 13:43
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


Спасибо, novichkov, за поддержку.
//РАБОТАЕТ (все виджеты меняют цвета)
void Dialog_filter::slot_filter_accepted()
{
    lineEdit_filter_m->setStyleSheet("QLineEdit { background: yellow; color: red }");
    spinBox_filter_b_min->setStyleSheet("QSpinBox { background: yellow; color: red }");
    timeEdit_filter_time_min->setStyleSheet("QTimeEdit { background: yellow; color: red }");
}

//РАБОТАЕТ (все виджеты меняют цвета)
void Dialog_filter::slot_filter_accepted()
{
    inputError = false;
    this->setStyleSheet("*");
    timeEdit_filter_time_min->setObjectName("");
    timeEdit_filter_time_max->setObjectName("");
    spinBox_filter_b_min->setObjectName("");
    spinBox_filter_b_max->setObjectName("");
    
    if (checkBox_filter_date->checkState() == Qt::Checked &&
        checkBox_filter_time->checkState() == Qt::Checked
        &&
        (timeEdit_filter_time_min->time() >
         timeEdit_filter_time_max->time())
        ) {
        timeEdit_filter_time_min->setObjectName("err");
        timeEdit_filter_time_max->setObjectName("err");
        inputError = true;
    }
    if (checkBox_filter_b->checkState() == Qt::Checked
        &&
        (spinBox_filter_b_min->value() >
         spinBox_filter_b_max->value())
        ) {
        spinBox_filter_b_min->setObjectName("err");
        spinBox_filter_b_max->setObjectName("err");
        inputError = true;
    }
    
    if (inputError) {
        //для всех виджетов диалога с именем err меняем цвета
        //см. The Style Sheet Syntax
        this->setStyleSheet("*#err { background: yellow; color: red }");
        return;
    }
}

А почему у меня с QPalette-то не получилось? :rolleyes: Неясно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 13.6.2025, 11:13