【发布时间】:2019-03-22 08:44:37
【问题描述】:
这是我的示例代码,我想为列表视图的每一行添加一个按钮。我没有找到将小部件设置为模型的任何方法。任何人都可以帮助我如何添加小部件列表视图的每一行。在此先感谢您。
下面是我的代码:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class MyCustomWidget(QWidget):
def __init__(self,parent=None):
super(MyCustomWidget, self).__init__(parent)
self.row = QHBoxLayout()
self.row.addWidget(QPushButton("add"))
self.setLayout(self.row)
class Dialog(QtGui.QDialog):
def __init__(self, parent=None):
super(Dialog, self).__init__(parent=parent)
vLayout = QtGui.QVBoxLayout(self)
hLayout = QtGui.QHBoxLayout()
self.lineEdit = QtGui.QLineEdit()
hLayout.addWidget(self.lineEdit)
self.filter = QtGui.QPushButton("filter", self)
hLayout.addWidget(self.filter)
self.list = QtGui.QListView(self)
vLayout.addLayout(hLayout)
vLayout.addWidget(self.list)
self.model = QtGui.QStandardItemModel(self.list)
codes = [
'windows',
'windows xp',
'windows7',
'hai',
'habit',
'hack',
'good'
]
self.list.setModel(self.model)
for code in codes:
item = QtGui.QStandardItem(code)
self.model.appendRow(item)
self.list.setIndexWidget(item.index(), QtGui.QPushButton("button"))
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
w = Dialog()
w.show()
sys.exit(app.exec_())
【问题讨论】:
-
其实我试过了,但是列表视图没有设置项目小部件
-
使用
self.list.setIndexWidget(item.index(), QtGui.QPushButton("button")) -
先生,我应该在哪里添加这一行?我在添加项目后添加了这一行,但它没有添加按钮
-
将
self.list.setModel(self.model)移到for code in codes:之前 -
添加后我只有按钮而不是我的项目列表
标签: python python-2.7 pyqt4