如何将 QLineEdit 放入 QTableView 单元格 PyQt4?
How to put a QLineEdit into QTableView cell PyQt4?
这是我的模型、视图和代理模型:
class example(QDialog):
def __init__(self):
super(druglist, self).__init__()
self.setMinimumWidth(745)
self.UI()
def UI(self):
self.table_view=QTableView()
self.table_model=QStandardItemModel()
self.table_proxy=QSortFilterProxyModel()
self.table_proxy.setSourceModel(self.table_model)
self.table_view.setModel(self.table_proxy)
我要为我的 table 的每一列放置 QLineEdits 以用于过滤目的。
我应该怎么做?
一个delegate可以做到。这是一个基本示例。
table 视图的委托决定在编辑单元格时应使用哪个小部件。在此示例中,委托仅应用于第一列。 QLineEdit 小部件的字符数限制为 3,因此您可以分辨它与其他列(否则看起来相同)之间的区别。
class ExampleDelegate(QtGui.QStyledItemDelegate):
def createEditor(self, parent, option, index):
line_edit = QtGui.QLineEdit(parent)
line_edit.setMaxLength(3)
return line_edit
class Example(QtGui.QDialog):
def __init__(self,):
super(Example, self).__init__()
self.build_ui()
def build_ui(self):
self.table_model = QtGui.QStandardItemModel(4, 2)
self.delegate = ExampleDelegate()
self.table_view = QtGui.QTableView()
self.table_view.setItemDelegateForColumn(0, self.delegate)
self.table_view.setModel(self.table_model)
self.layout.addWidget(self.table_view)
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)
这是我的模型、视图和代理模型:
class example(QDialog):
def __init__(self):
super(druglist, self).__init__()
self.setMinimumWidth(745)
self.UI()
def UI(self):
self.table_view=QTableView()
self.table_model=QStandardItemModel()
self.table_proxy=QSortFilterProxyModel()
self.table_proxy.setSourceModel(self.table_model)
self.table_view.setModel(self.table_proxy)
我要为我的 table 的每一列放置 QLineEdits 以用于过滤目的。 我应该怎么做?
一个delegate可以做到。这是一个基本示例。
table 视图的委托决定在编辑单元格时应使用哪个小部件。在此示例中,委托仅应用于第一列。 QLineEdit 小部件的字符数限制为 3,因此您可以分辨它与其他列(否则看起来相同)之间的区别。
class ExampleDelegate(QtGui.QStyledItemDelegate):
def createEditor(self, parent, option, index):
line_edit = QtGui.QLineEdit(parent)
line_edit.setMaxLength(3)
return line_edit
class Example(QtGui.QDialog):
def __init__(self,):
super(Example, self).__init__()
self.build_ui()
def build_ui(self):
self.table_model = QtGui.QStandardItemModel(4, 2)
self.delegate = ExampleDelegate()
self.table_view = QtGui.QTableView()
self.table_view.setItemDelegateForColumn(0, self.delegate)
self.table_view.setModel(self.table_model)
self.layout.addWidget(self.table_view)
self.layout = QtGui.QGridLayout()
self.setLayout(self.layout)