stephen
stephen
谢谢!
我是这样做的。感觉好像有点LOW。还有别的方法吗? `void ComplexPocess::on_lineEdit_Amount_textChanged(const QString &arg1) { ui->lineEdit_Amount->blockSignals(true); ui->lineEdit_Amount->setText(QString::number(arg1.toDouble(), 'f', 2)); ui->lineEdit_Amount->blockSignals(false); }`
接续上面: 白底黑字); 后来添加如下代码: ` if (option.state &QStyle::State_Selected) { painter->fillRect(option.rect, option.palette.highlight()); QApplication::style()->drawControl(QStyle::CE_CheckBox,&checkBoxStyleOption,painter); } else { QApplication::style()->drawControl(QStyle::CE_CheckBox,&checkBoxStyleOption,painter); }` 解决了不能点击选择的问题。不过又出现新的问题: 当点击选择后变为了蓝底黑字后。如果这时焦点转到别的控件后,Item任然还是蓝底黑字。我希望这种情况下Item变为灰底黑字(像系统默认的那种效果)。
为了在TableView中格式化显示信息,重写了delegate的: void paint(QPainter* painter,const QStyleOptionViewItem& option,const QModelIndex& index) const; 结果: 1、实现了想要的格式。 问题: 1、重绘过的Item单元不能被点击(未重绘时,点击Item会变为蓝底黑字,重绘后点击无变化,任然为白底黑字); 后来添加如下代码: if (option.state &QStyle::State_Selected) { painter->fillRect(option.rect, option.palette.highlight()); QApplication::style()->drawControl(QStyle::CE_CheckBox,&checkBoxStyleOption,painter); } else { QApplication::style()->drawControl(QStyle::CE_CheckBox,&checkBoxStyleOption,painter); } 解决了不能点击选择的问题。不过又出现新的问题: 当点击选择后变为了蓝底黑字后。如果这时焦点转到别的控件后,Item任然还是蓝底黑字。我希望这种情况下Item变为灰底黑字(像系统默认的那种效果)。)

以上为选择时
以下为焦点离开后

希望的状态是焦点离开后:蓝底黑字,变为灰底黑字(系统默认的模式)
谢谢,我试试。