Windows 如何操作-QlineEdit内的QToolButton:Qt5

Windows 如何操作-QlineEdit内的QToolButton:Qt5,windows,qt5,qlineedit,qpushbutton,Windows,Qt5,Qlineedit,Qpushbutton,我想在QLineEdit中添加QToolButton 我想清除该按钮上的QLineEdit控件的文本 例如,如何在谷歌图像中: 我看过: 这个 但还是没有解决我的问题 提前感谢。//创建QTool按钮: QToolButton *clearButton = new QToolButton(this); QPixmap pixmap(":/new/AppResource/images/clear_button.png"); clearButton->setIcon(QIcon(pixmap

我想在
QLineEdit
中添加
QToolButton

我想清除该按钮上的
QLineEdit
控件的文本

例如,如何在谷歌图像中:

我看过:

这个

但还是没有解决我的问题

提前感谢。

//创建QTool按钮:

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(clearButton, SIGNAL(clicked()), this, SLOT(clear()));
connect(this, SIGNAL(textChanged(const QString&)), this, SLOT(updateCloseButton(const QString&)));
在文本输入框中可见:

clearButton->setVisible(true);

自Qt 5.2以来,此行为作为QLineEdit的直接属性提供:

您可以将带有自定义图标的自定义QAction添加到QLineEdit:


对于python用户,它的工作方式如下:
action=edit.addAction(QIcon('icon.png')、QLineEdit::ActionPosition::TrailingPosition)
然后执行
action.triggered.connect(func_name)
QLineEdit *edit = new QLineEdit(this);
edit->setClearButtonEnabled(true);
QLineEdit *edit = new QLineEdit(this);
QAction *action =
    edit->addAction(QIcon("/path/to/icon"), QLineEdit::ActionPosition::LeadingPosition);
connect(action, &QAction::triggered, this, &ThisObject::doSomething);