1. 程式人生 > >QLCDNumber設定背景色和顯示數字顏色

QLCDNumber設定背景色和顯示數字顏色

//LCD時間顯示
    QLCDNumber *m_pLcdTime = new QLCDNumber(this);
    //設定顯示幾個數字
    m_pLcdTime->setDigitCount(19);
    //設定數字字型:Outline,輪廓突出,顏色為背景色;Filled,內部填充型,顏色為黑色;Flat,平面型
    m_pLcdTime->setSegmentStyle(QLCDNumber::Flat);
    //調色盤
    QPalette lcdpat = m_pLcdTime->palette();
    /*設定顏色,整體背景顏色 顏色藍色,此函式的第一個引數可以設定多種。如文字、按鈕按鈕文字、多種*/
    lcdpat.setColor(QPalette::Normal,QPalette::WindowText,Qt::red);
    //設定當前視窗的調色盤
    m_pLcdTime->setPalette(lcdpat);
    //設定背景色
    m_pLcdTime->setStyleSheet("background-color: yellow");
    m_pLcdTime->display(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));

    設定數字顏色時要注意:  函式setSegmentStyle(QLCDNumber::Flat)中選擇Flat屬性,否則在setColor()設定數字顏色時不生效
    設定背景色直接用setStyleSheet()函式設定就可以了。


--------------------------------------------------------------------------------
void frmShowAPI::InitForm()
{

	int icoWidth = 100;
	int icoHeight = 20;
	ui->cboxColor->setSizeAdjustPolicy(QComboBox::AdjustToContents);
	colorList = QColor::colorNames();

	foreach (QString color, colorList) {
		QPixmap pix(QSize(icoWidth, icoHeight));
		pix.fill(color);
		ui->cboxColor->addItem(QIcon(pix), color);
		ui->cboxColor->setIconSize(QSize(icoWidth, icoHeight));
	}

	connect(ui->cboxColor, SIGNAL(currentIndexChanged(int)), this, SLOT(ChangeColor()));
}

void frmShowAPI::ChangeColor()
{
	QString colorName = colorList.at(ui->cboxColor->currentIndex());
    QString qss = QString("QLCDNumber{background-color: rgb(0, 0, 0);color:%1;}").arg(colorName);
	ui->lcdNumber->setStyleSheet(qss);
}