Qcombox与QlineEdit默认文本字体与颜色设置

2023/11/24 学习记录:

        最先想实现的是Qcombox可以跟QlineEdit一样设置PlaceholderText属性一样默认颜色为灰色,输入内容后变成黑色,结果发现Qcombox无法实现这一功能;

        查找多处资料,还是没找到怎么实现的。。。。。

最后解决办法如下:

        首先放上最终的效果图:

       整体实现思路如下:首先是在ui文件中对默认的字体设置,当combox的index变化时重新对默认字体设置,然后设置首行选项为灰色且无法选中,但此灰色和lineEdit的默认提示灰色有色差,可以通过设置lineEdit的默认文字和字体颜色保持一致,这样就可以保证combox未选中时,下拉首项和lineEdit未输入时三种颜色一致了

        对于Combox在ui属性中设置:

QComboBox {padding-right: 0px; color: #9B9B9B;  border: 1px solid #4A90E2; font: 52px "黑体";}

        这样未选择时就是这个颜色color: #9B9B9B(具体可以自己更改),然后在设置信号与槽函数:

connect(ui->comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(onCurrentIndexChanged()));
void MainWindow::onCurrentIndexChanged(){
    ui->comboBox->setStyleSheet("QComboBox {padding-right: 0px; color: #000000; border: 1px solid #4A90E2; font: 52px \"SimHei\";}")
}

这样在第一次选择后,就会将选择的颜色从灰色改为黑色color: #000000;

        然后问题来了,QT中lineEdit默认的颜色和设置好的QComboBox QT::Gray颜色有色差,可以通过设置lineEdit的PlaceholderText:默认文本和颜色

ui->lineEdit->setPlaceholderText(QStringLiteral("未选择锚段编号"));
    QPalette palette = ui->lineEdit->palette();
    palette.setColor(QPalette::Normal, QPalette::PlaceholderText, Qt::gray);
    ui->lineEdit->setPalette(palette);

        

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值