How to do - QToolButton inside the QlineEdit : Qt5

梦想的初衷 提交于 2019-11-29 12:38:48

This behaviour is available as a direct property to QLineEdit since Qt 5.2:

https://qt-project.org/doc/qt-5/qlineedit.html#clearButtonEnabled-prop

QLineEdit *edit = new QLineEdit(this);
edit->setClearButtonEnabled(true);

You can add a custom QAction with your self-defined icons to the QLineEdit:

https://qt-project.org/doc/qt-5/qlineedit.html#addAction

QLineEdit *edit = new QLineEdit(this);
QAction *action =
    edit->addAction(QIcon("/path/to/icon"), QLineEdit::ActionPosition::LeadingPosition);
connect(action, &QAction::triggered, this, &ThisObject::doSomething);

//Create QToolButton:

QToolButton *clearButton = new QToolButton(this);
QPixmap pixmap(":/new/AppResource/images/clear_button.png");
clearButton->setIcon(QIcon(pixmap));
clearButton->setIconSize(pixmap.size());
clearButton->setCursor(Qt::ArrowCursor);
clearButton->setStyleSheet("QToolButton { border: none; padding: 0px; }");
clearButton->hide();

Connect Signal-Slot:

connect(clearButton, SIGNAL(clicked()), this, SLOT(clear()));
connect(this, SIGNAL(textChanged(const QString&)), this, SLOT(updateCloseButton(const QString&)));

Visible on Text Enter into serach box:

clearButton->setVisible(true);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!