QLineEdit其实是支持动态显示删除按钮的,现代UI也都是采用这种方式的。
通过函数
filterLineEdit->setClearButtonEnabled(true);
但是这个自带的按钮是黑白的,我们想改掉它的icon图片,那么就需要得到这个内置的删除按钮,而这个删除按钮不对外开放,我们需要通过
findChild 函数把这个控件找出来,对它进行setIcon操作,就可以了。
此外,还可以给QLineEdit在前后增加action,用addAction函数就可以。文章来源:https://www.toymoban.com/news/detail-515132.html
示例代码如下:文章来源地址https://www.toymoban.com/news/detail-515132.html
{ //添加过滤器编辑器框,这里实现了漂亮的控件了
QLineEdit* filterLineEdit = new QLineEdit;
filterLineEdit->setPlaceholderText("文件名过滤器");
// filterLineEdit->setToolTip("");
filterLineEdit->setClearButtonEnabled(true);
// filterLineEdit->addAction(ui->actionOpen_Folder, QLineEdit::LeadingPosition);
//哈哈,我这样写太牛逼了,直接把内置的action给拿出来了
QAction* actionClear = (filterLineEdit->findChild<QAction*>("_q_qlineeditclearaction"));
if(actionClear)
actionClear->setIcon(QIcon(":/icons/images_pro/delet.svg"));
// qDebug()<<"filterLineEdit->actions().size(): "<<filterLineEdit->actions().size();
// qDebug()<<"filterLineEdit->children(): "<<filterLineEdit->children();
hlayout->addWidget(filterLineEdit);
}
到了这里,关于QLineEdit的美化(支持内置按钮 自定义图标)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!