C++ QLineEdit
时间: 2024-06-13 11:07:03 浏览: 182
基于QT+C++开发的带有标签、下划线的Material Design风格输入框QLineEdit+源码
QLineEdit是Qt中的一个控件,用于接收单行文本输入。它可以用于输入用户名、密码、搜索关键字等等。以下是一个简单的QLineEdit的例子:
```cpp
#include <QApplication>
#include <QLineEdit>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLineEdit *lineEdit = new QLineEdit();
lineEdit->setPlaceholderText("请输入文本"); // 设置占位符文本
lineEdit->show();
return a.exec();
}
```
上述代码创建了一个QLineEdit对象,并设置了一个占位符文本。运行程序后,会显示一个空的文本框,用户可以在其中输入文本。
如果想要自定义QLineEdit控件,可以继承QLineEdit类并重写其中的一些方法。例如,可以自定义一个带有删除按钮的QLineEdit控件,代码如下:
```cpp
#include <QApplication>
#include <QLineEdit>
#include <QToolButton>
#include <QHBoxLayout>
class CustomLineEdit : public QLineEdit
{
public:
CustomLineEdit(QWidget *parent = nullptr) : QLineEdit(parent)
{
m_clearButton = new QToolButton(this);
m_clearButton->setIcon(QIcon(":/images/clear.png"));
m_clearButton->setCursor(Qt::ArrowCursor);
m_clearButton->setStyleSheet("QToolButton { border: none; padding: 0px; }");
QHBoxLayout *layout = new QHBoxLayout(this);
layout->addStretch();
layout->addWidget(m_clearButton);
layout->setContentsMargins(0, 0, 0, 0);
connect(m_clearButton, &QToolButton::clicked, this, &QLineEdit::clear);
}
private:
QToolButton *m_clearButton;
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
CustomLineEdit *lineEdit = new CustomLineEdit();
lineEdit->setPlaceholderText("请输入文本");
lineEdit->show();
return a.exec();
}
```
上述代码创建了一个CustomLineEdit类,继承自QLineEdit类,并添加了一个删除按钮。在构造函数中,我们创建了一个QToolButton对象,并设置了它的图标、样式等属性。然后,我们创建了一个水平布局,并将删除按钮添加到布局中。最后,我们将布局设置为CustomLineEdit的布局,并连接了删除按钮的clicked信号和QLineEdit的clear槽函数。
运行程序后,会显示一个带有删除按钮的文本框,用户可以在其中输入文本,并通过点击删除按钮来清空文本框。
阅读全文