from PyQt4 import QtGui, QtCore

class ButtonLineEdit(QtGui.QLineEdit):

buttonClicked = QtCore.pyqtSignal(bool)

def __init__(self, icon_file, parent=None):

super(ButtonLineEdit, self).__init__(parent)

self.button = QtGui.QToolButton(self)

self.button.setIcon(QtGui.QIcon(icon_file))

self.button.setStyleSheet('border: 0px; padding: 0px;')

self.button.setCursor(QtCore.Qt.ArrowCursor)

self.button.clicked.connect(self.buttonClicked.emit)

frameWidth = self.style().pixelMetric(QtGui.QStyle.PM_DefaultFrameWidth)

buttonSize = self.button.sizeHint()

self.setStyleSheet('QLineEdit {padding-right: %dpx; }' % (buttonSize.width() + frameWidth + 1))

self.setMinimumSize(max(self.minimumSizeHint().width(), buttonSize.width() + frameWidth*2 + 2),

max(self.minimumSizeHint().height(), buttonSize.height() + frameWidth*2 + 2))

def resizeEvent(self, event):

buttonSize = self.button.sizeHint()

frameWidth = self.style().pixelMetric(QtGui.QStyle.PM_DefaultFrameWidth)

self.button.move(self.rect().right() - frameWidth - buttonSize.width(),

(self.rect().bottom() - buttonSize.height() + 1)/2)

super(ButtonLineEdit, self).resizeEvent(event)

import sys

from PyQt4 import QtGui

def buttonClicked():

print 'You clicked the button!'

if __name__ == '__main__':

app = QtGui.QApplication(sys.argv)

main = ButtonLineEdit(r'C:\Users\Administrator\Desktop\a.jpg')

main.buttonClicked.connect(buttonClicked)

main.show()

sys.exit(app.exec_())

pyqt lineedit右边显示按钮效果的更多相关文章

  1. 基于Ajax+div的“左边菜单、右边内容”页面效果实现

    效果演示: ①默认页面(index.jsp): ②:点击左侧 用户管理 标签下的 用户列表 选项后,右边默认页面内容更新为用户列表页(userList.jsp)的内容 : ③:同理,点击 产品管理.订 ...

  2. 仿淘宝分页按钮效果简单美观易使用的JS分页控件

    分页按钮思想:  1.少于9页,全部显示  2.大于9页,1.2页显示,中间页码当前页为中心,前后各留两个页码  附件中有完整例子的压缩包下载.已更新到最新版本  先看效果图:  01输入框焦点效果  ...

  3. C# 如何定义让PropertyGrid控件显示[...]按钮,并且点击后以下拉框形式显示自定义控件编辑属性值

    关于PropertyGrid控件的详细用法请参考文献: 1.C# PropertyGrid控件应用心得 2.C#自定义PropertyGrid属性 首先定义一个要在下拉框显示的控件: using Sy ...

  4. 基于jQuery悬停弹出遮罩显示按钮代码

    今天给大家分享一款基于jQuery悬停弹出遮罩显示按钮代码.这是是一款当鼠标悬停在图片上后,会出现一系列的按钮,文字等弹性动画效果.效果图如下: 在线预览   源码下载 实现的代码. html代码: ...

  5. c# winForm 将窗体状态栏StatusStrip 分成左中右三部分 右边显示当前时间

    实现效果:通过StatusStrip显示窗体状态栏同时将状态栏分成三部分居左边显示相关文字信息中间空白显示居右边显示时间信息 1.创建窗体及添加StatusStrip  默认StatusStrip名称 ...

  6. 【Web】block、inline、inline-block元素与background属性概述(案例实现社交账号注册按钮效果)

    步骤三:社交账号注册按钮效果 文章目录 步骤三:社交账号注册按钮效果 案例的演示与分析 CSS属性与HTML标签 块级元素 内联元素 行内块级元素 CSS的display属性 CSS中的背景图片属性 ...

  7. javascript超过容器后显示省略号效果(兼容一行或者多行)

    javascript超过容器后显示省略号效果       在实际的项目中,由于文字内容的长度不确定性和页面布局的固定性,难免会出现文字内容超过div(或其他标签,下同)区域的情况,此时比较好的做法就是 ...

  8. 使用 CSS3 制作一组超时尚的动画按钮效果

    通过 CSS3 的新特性,我们创作出好的交互和效果的可能性大大增加.这篇文章中,我想与大家分享一些 CSS3 动画按钮效果.我们的想法是创建一个具有不同风格的一些动画链接元素,鼠标悬停时有动画效果和活 ...

  9. 美妙的 CSS3 动画!一组梦幻般的按钮效果

    今天给大家带来的是五款梦幻般的动画按钮效果.下面是在线演示,把鼠标放在按钮上试试,有惊喜哦!CSS3 引入了众多供功能强大的新特性,让设计和开发人员能够轻松的创作出各种精美的界面效果. 温馨提示:为保 ...

随机推荐

  1. 修改文件所有者 chown

    将upload目录权限改为777,sudo chmod 777 upload,再测试上传功能成功.但这种修改权限的方法并不安全.故可以改upload目录的拥有者为www-data(即apache)   ...

  2. 第12届北师大校赛热身赛第二场 A.不和谐的长难句1

    题目链接:http://www.bnuoj.com/bnuoj/problem_show.php? pid=17121 2014-04-25 22:59:49 不和谐的长难句1 Time Limit: ...

  3. 图表插件--jqplot交互演示样例

    简单交互 在之前的学习中,我们已经能够绘制各种类型的图表,也能够给图表加入不同的组件,如标题.图例等等.但这些图表仅仅能用于展示数据,一旦希望对图表有所操作--比方查看数据明细--就显得束手无策了.事 ...

  4. Android实现获取本机中所有图片

    本示例演示如何在Android中使用加载器(Loader)来实现获取本机中的所有图片,并进行查看图片的效果. 在这个示例中,我使用android-support-v4.jar中的加载器(Loader) ...

  5. C程序设计的抽象思维-算法分析-大多数元素

    [问题] 请编写下面函数 int MajorityElement(int array[],int n); 该函数返回数组array中的多数元素.多数元素是指在占绝对多数(至少51%)的一个值.假设多数 ...

  6. 如何解决svn图标不显示呢?

    svn图标不显示解决 确保设置正确: 右键->TortoiseSVN->setting->Icon Overlays->Status cache->default/She ...

  7. python字符串连接方式(转)

    在python中有很多字符串连接方式,今天就在这里具体总结一下: ①.最原始的字符串连接方式:str1 + str2②.python 新字符串连接语法:str1, str2③.奇怪的字符串方式:str ...

  8. 关于链接target的问题

    <a href="http://www.baidu.com" target="_blank">点击链接</a> target: _bla ...

  9. log4net截取配置错误信息,(验证配置信息是否配置正确)

    在</system.web>之后 <!--log4错误日志配置:开始--> <system.diagnostics> <trace autoflush=&qu ...

  10. Kafka笔记--常用指令(删除topic)

    删除topic 首先需要设置server.properties,最后一行添加 delete.topic.enable=true 然后运行> ./kafka-topics.sh --zookeep ...