如何设置控件的disabled的颜色
控制控件的disable的颜色有以下方法:
- 使用QPalette类来实现;
- 使用qss来实现。
1.使用QPalette类来实现
以为QComboBox例子
QComboBox *m_pComboBox =new QComboBox;
QPalette palette=m_pComboBox ->palette();
palette.setColor(QPalette ::Disabled,QPalette::Text,Qt::red);
m_pComboBox ->setPalette(palette);
如此设置后:
当这个m_pComboBox被设置为Disable时候;(m_pComboBox->setEnabled(false);)
Text的颜色会变为红色。
如果你有大量的QComboBox需要设置出这个效果,不妨自己继承QComboBox做一个子类;
只需要修改构造函数,加入如下代码即可。
QPalette palette=this->palette();
palette.setColor(QPalette ::Disabled,QPalette::Text,Qt::red);
this->setPalette(palette);
2.使用qss来实现
如果不想继承QComboBox那么还可以使用qss来设置。
编写一个myqss.qss文件,其内容为:
QComboBox:disabled{
color:red;
}
在main.cpp中加入如下代码:
QFile qss("myqss.qss);
qss.open(QFile::ReadOnly);
qApp->setStyleSheet(qss.readAll());
qss.close();
这时候一样能达到以上效果