How to do - QToolButton inside the QlineEdit : Qt5

前端 未结 2 1585
春和景丽
春和景丽 2020-12-20 03:32

I want to add QToolButton inside the QLineEdit.

I want to clear the text of QLineEdit control on that button click.

Fo

相关标签:
2条回答
  • 2020-12-20 03:50

    //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);
    
    0 讨论(0)
  • 2020-12-20 04:02

    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);
    
    0 讨论(0)
提交回复
热议问题