qt QLineEdit 左侧带自定义图标类

头文件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

qt QLineEdit 左侧带自定义图标类的相关文章

JSP等网站【创建带自定义图标的桌面快捷方式】

原理解析:1.打开网页 2.打开网页的exe自定义图标 URL= "http://www.gaoxinshangcheng.com/" Call RunApp(URL) Call OnScriptExit() Sub OnScriptExit() Hwnd = Plugin.Window.Find(0, "桌面快捷方式Exe运行标题") Call Plugin.Window.Close(Hwnd) End Sub 有附件可用.

Java 控制台执行带自定义包定义的类,出现“Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: ConnectSQLServer (wrong name: sine/ConnectSQLServer)”

1.先说明一下代码实现:自定义package sine, 源代码保存路径为:E:\JSP\HibernateDemo\HibernateDemoProject\src\sine\ConnectSQLServer.java 1 package sine; 2 import java.sql.*; 3 4 public class ConnectSQLServer { 5 6 public static void main(String args[]){ 7 String url="jdbc:sql

qt model/view 架构自定义模型之QStringListModel

# -*- coding: utf-8 -*- # python:2.x #QStringListModel #QStringListModel 是最简单的模型类,具备向视图提供字符串数据的能力. #QStringListModel 是一个可编辑的模型,可以为组件提供一系列字符串作为数据. #看作是封装了 QStringList 的模型.QStringList 是一种很常用的数据类型,实际上 #是一个字符串列表(也就是 QList<QString>).既然是列表,它也就是线性的数据结构, #因

Android ToolBar自定义图标,关联DrawerLayout

Android5.0出现了一个可以代替ActionBar的控件ToolBar,使用更加灵活,一般我们使用ToolBar来和DrawerLayout配合使用,官方提供了一个开关类ActionBarDrawerToggle,来实现ToolBar和DrawerLayout的关联,但是 有时根据我们的需求需要更改左侧的图标,不在需要系统默认的三条杠的图标同时点击图标还想要DrawerLayout的侧拉页面出来,下面讲解两种不同的方式 一:通过代码来实现改变ToolBar的图标 public class

Qt动画架构中的主要类

Qt动画架构中的主要类如下图所示: 动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成.QAbstractAnimation是所有动画类的祖宗.它包含了所有动画的基本属性.比如开始,停止和暂停一个动画的能力.它也可以接收时间改变通知. 动画框架又进一步提供了QProertyAnimation类.它继承自QVariantAnimation并对某个Qt属性(它须是Qt的"元数据对象系统"的一部分,见http

C#学习笔记(14)——C# 使用IComparer自定义List类的排序方案

说明(2017-7-17 21:34:59): 原文:https://my.oschina.net/Tsybius2014/blog/298702?p=1 摘要: C# 使用IComparer自定义List类的排序方案 List类中不带参数的Sort函数可以用来为List类中的元素排序,但如果List类中的元素类型本身不能直接进行比较(如自定义的struct和很多class),或是希望采用更加灵活的自定义比较方式,可以通过继承了IComparer接口的函数来解决. 代码示例如下: 1)声明一个类

Cocos2d-x 自定义按钮类控制精灵攻击----之游戏开发《赵云要格斗》

本篇要讲讲怎么自定义按钮类,并通过这个按钮类的对像来控制精灵的攻击.在看本篇之前最好先看看上一篇 Cocos2d-x虚拟摇杆控制精灵上下左右运动----之游戏开发<赵云要格斗>,要素材和项目代码的把邮箱留下吧,因为这个项目还没弄完,我一直在改. 精灵的攻击也是一个动画,只不过,这个动画只播放一次,相当于在界面上加一个按钮,然后你点一次按钮,精灵就播放一次动画. 一.自定义按钮类 按钮可以用COCOS2D-X自带的,想着方便一点,我就自己封装了一个按钮类ControlButton,在里面添加一个

第五十八课、自定义模型类(上)------------------狄泰软件学院

 一.自定义模型类 1.QStandardItemModel是一个通用的模型类 (1).能够以任意的方式组织数据(线程.非线性) (2).数据组织的基本单位为数据项(QStandardItem) (3).每一个数据项能够存储多个具体数据(附加数据角色) (4).每一个数据项能够对数据状态进行控制(可编辑.可选...) 2.Qt中的通用模型类QStandardItemModel (1).QStandardItemModel继承自抽象的模型类QAbstractItemModel (2).QStand

C# 使用IComparer自定义List类的排序方案

List类中不带参数的Sort函数可以用来为List类中的元素排序,但如果List类中的元素类型本身不能直接进行比较(如自定义的struct和很多class),或是希望采用更加灵活的自定义比较方式,可以通过继承了IComparer接口的函数来解决. 代码示例如下: 1)声明一个类 /// <summary> /// 人物类 /// </summary> public class Person {     public string Name;     public int Age;