如果文本框不是字段,我想更改它们的边框。因此,我进行了简单的检查,并检查了更改样式,如下所示:
if(!ui->TextBoxPhone->text().isEmpty() && !ui->TextBoxAddress->text().isEmpty()) {
cout<<"Saved fine \n";
}
else {
if(ui->TextBoxPhone->text().isEmpty()) {
ui->TextBoxPhone->setStyleSheet("border: 2px solid red");
}
if(ui->TextBoxAddress->text().isEmpty()) {
ui->TextBoxAddress->setStyleSheet("border: 2px solid red");
}
}
所以我的问题是样式表不会自动更新。但是,如果我单击其他位置,它将更新。 我已经尝试使用
ui->TextBoxName->style()->unpolish(ui->TextBoxName);
ui->TextBoxName->style()->polish(ui->TextBoxName);
ui->TextBoxName->update();
没有运气。可能是macbook版吗?
这是一些屏幕截图:
您可以看到左边界为红色
当我单击另一个文本框时,它们都会更新并变成红色
答案 0 :(得分:0)
为我工作:
myTextEdit->setStyleSheet("QTextEdit{background: transparent; border: none;}");
没有其他需要了。确保为样式表指定正确的类型。也许甚至可以解决:
myTextEdit->setStyleSheet("{background: transparent; border: none;}");
答案 1 :(得分:0)
解决了它……repaint()方法完成了工作;
ui->TextBoxPhone->repaint();