python – pyside / pyqt:绑定共享相同功能的多个按钮的简单方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – pyside / pyqt:绑定共享相同功能的多个按钮的简单方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1268字,纯文字阅读大概需要2分钟。
内容图文
![python – pyside / pyqt:绑定共享相同功能的多个按钮的简单方法](/upload/InfoBanner/zyjiaocheng/697/624056ffc9a44bad900e350df7c92af7.jpg)
我是PyQt / PySide的新手.
我有很多行编辑(用于显示文件位置)和每行文本我有一个按钮(显示打开文件对话框).
我有一个方法:
def selectSelf1(self):
""" browse for file dialog """
myDialog = QtGui.QFileDialog
self.lineSelf1.setText(myDialog.getOpenFileName())
并使用以下代码绑定按钮
self.btnSelf1.clicked.connect(self.selectSelf1)
我有大约20个按钮和20个行编辑.有没有一种简单的方法可以将所有这些按钮绑定到相应的行编辑,而不是键入所有内容.
谢谢!
解决方法:
如果您有一个按钮和LineEdits列表,您可以使用以下内容:
> QSignalMapper,another description
> functools.partial,像这样:
def show_dialog(self, line_edit):
...
line_edit.setText(...)
for button, line_edit in zip(buttons, line_edits):
button.clicked.connect(functools.partial(self.show_dialog, line_edit))
> lambda’s
for button, line_edit in ...:
button.clicked.connect(lambda : self.show_dialog(line_edit))
如果您使用Qt Designer,并且没有按钮和lineedits列表,但它们都具有相同的命名模式,您可以使用一些内省:
class Foo(object):
def __init__(self):
self.edit1 = 1
self.edit2 = 2
self.edit3 = 3
self.button1 = 1
self.button2 = 2
self.button3 = 3
def find_attributes(self, name_start):
return [value for name, value in sorted(self.__dict__.items())
if name.startswith(name_start)]
foo = Foo()
print foo.find_attributes('edit')
print foo.find_attributes('button')
内容总结
以上是互联网集市为您收集整理的python – pyside / pyqt:绑定共享相同功能的多个按钮的简单方法全部内容,希望文章能够帮你解决python – pyside / pyqt:绑定共享相同功能的多个按钮的简单方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。