头文件qpnglineeditex.h
#ifndef QPNGLINEEDITEX_H #define QPNGLINEEDITEX_H #include <QPushButton> class QLineEdit; class QString; class QPngLineEdit : public QPushButton { Q_OBJECT public: explicit QPngLineEdit(const QString &text, QLineEdit *edit, const QString &strImg); signals: public slots: }; #endif // QPNGLINEEDITEX_H
cpp 文件
#include "qpnglineeditex.h" #include <QLineEdit> #include <QHBoxLayout> QPngLineEdit::QPngLineEdit(const QString &text, QLineEdit *edit, const QString &strImg) : QPushButton(text, edit) { QSize size = QSize(30, 30); setMinimumSize(size); setMaximumSize(size); // 设置按钮的大小为图片的大小 setFocusPolicy(Qt::NoFocus); // 得到焦点时,不显示虚线框 setFlat(true); setText(text); setCursor(QCursor(Qt::PointingHandCursor)); QHBoxLayout *buttonLayout = new QHBoxLayout(); buttonLayout->setContentsMargins(1, 1, 1, 1); buttonLayout->addStretch(); buttonLayout->addWidget(this); buttonLayout->setDirection(QBoxLayout::RightToLeft); edit->setLayout(buttonLayout); // 设置输入框中文件输入区,不让输入的文字在被隐藏在按钮下 edit->setTextMargins(size.width(), 1, 1 , 1); // 设置style 图片位置url改为自己的。 QString qss = QString(".QPngLineEdit{ border-image: url(:/login/resource/login/%1); }").arg(strImg); setStyleSheet(qss); }
引入:
在父widget中:
new QPngLineEdit("", ui->m_pEditUser,"iphone_mobile.png");
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-10 17:02:26