2017-01-05 7 views
0

Можно ли создать QinputDialog?Таблица стилей QInputDialog

У меня есть следующий код:

void calibratemotors::on_pushButton_shuttopen_manualent_clicked() 
{ 
    bool ok; 
    double shutopen_manenter = QInputDialog::getDouble(this, "getDouble", 
             "Some Number:", 0.00, -10000, 10000, 2, &ok); 
    if (ok) 
     ui->label->setText(QString("%1").arg(shutopen_manenter)); 

} 

Проблема заключается в том, является он наследует аспекты «это», как, например, цвет фона, границы и т.д. Я попытался добавить строку:

this->setStyleSheet("QInputDialog {background-color: red;}"); 

на клике, но это также изменяет родительское окно, так что можно только вызвать цвет фона QInputDialog, не влияя на родителя? Сейчас я получаю это:

До:

enter image description here

После:

enter image description here

Его, как на фоне родителя раздевание и вернулся обратно к цветам системы по умолчанию ,

+0

Calibratemotors какого вида это? – eyllanesc

+0

QDialog - Думаю, я это понял. Решение идет. – Scientized

+0

см. Мое решение, пожалуйста. – eyllanesc

ответ

1

Использует QInputDialog вместо QMenu. В этом случае setStyleSheet("QInputDialog {background-color: red;}");. Хорошей практикой является указание виджета, на который это повлияет. Согласно тому, что вы говорите, ваш базовый виджет QDialog.

«*» делает стиль применимым только к этому виджету и не каскадирует к другим.

Вот пример.

setStyleSheet("QDialog{background-color: black;}" 
        "QInputDialog {background-color: red;};"); 

ui->label->setStyleSheet("*{background-color: green;}"); 

Выход:

enter image description here