Qt Qpaletteを使用してQpushbutton背景色を設定する問題
1630 ワード
プログラミングにより,Qpaletteによりインタフェースのすべてのボタンの色の動的設定が実現できないことが分かった.
特定の色の設定はsetStyleSheetでのみ可能です.
コードは次のとおりです.
ウィンドウの色設定についても、thisポインタを指定する必要があります.そうしないと、色設定も実現できません.
しかし,ボタンテキスト,ウィンドウテキストの動的色設定が実現できることが実験で分かった.
読者に異なる見解があれば、交流を歓迎します.
特定の色の設定はsetStyleSheetでのみ可能です.
コードは次のとおりです.
void Palette::ShowButton()
{
QStringList colorList = QColor::colorNames();
QColor color = QColor(colorList[buttonComboBox->currentIndex()]);
QPalette p = contentFrame->palette();
p.setColor(QPalette::Button, color);
contentFrame->setPalette(p);
contentFrame->update();
//OkBtn->setStyleSheet("background-color:rgb(50, 250, 60)");
}
ウィンドウの色設定についても、thisポインタを指定する必要があります.そうしないと、色設定も実現できません.
void Palette::ShowWindow()
{
QStringList colorList = QColor::colorNames();
QColor color = QColor(colorList[windowComboBox->currentIndex()]);
QPalette p = this->palette();
p.setColor(QPalette::Window,color);
this->setPalette(p);
this->update();
//qDebug() << "showWindow";
}
しかし,ボタンテキスト,ウィンドウテキストの動的色設定が実現できることが実験で分かった.
void Palette::ShowWindowText()
{
QStringList colorList = QColor::colorNames();
QColor color = colorList[windowTextComboBox->currentIndex()];
QPalette p = contentFrame->palette();
p.setColor(QPalette::WindowText,color);
contentFrame->setPalette(p);
}
void Palette::ShowButtonText()
{
QStringList colorList = QColor::colorNames();
QColor color = QColor(colorList[buttonTextComboBox->currentIndex()]);
QPalette p = contentFrame->palette();
p.setColor(QPalette::ButtonText,color);
contentFrame->setPalette(p);
}
読者に異なる見解があれば、交流を歓迎します.