1
위임자가 qtableview에서 편집 한 qlistview가 있습니다. qtableview가 나타나면 qlistview를 사용하여 qtableview에 맞게 행의 크기를 조정하십시오.QListView를 편집기 크기에 따라 크기를 조정하는 방법
import sys
from PyQt4 import QtGui, QtCore
class MyDelegate(QtGui.QStyledItemDelegate):
def createEditor(self, parent, option, index):
mtview = QtGui.QTableView(parent)
mtview.verticalHeader().setVisible(False)
mtview.horizontalHeader().setVisible(False)
mtmodel = QtGui.QStandardItemModel()
mtview.setModel(mtmodel)
return mtview
def setEditorData(self, editor, modelindex):
editor.parent().setMinimumSize(400,400)
mtmodel = editor.model()
for x in range(5):
for y in range(5):
mtmodel.setItem(x,y,QtGui.QStandardItem("%s, %s" % (x, y)))
class MyApp(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.resize(200, 200)
self.listview = QtGui.QListView(self)
self.listview.setGeometry(QtCore.QRect(0,0,200,200))
self.listview.setItemDelegate(MyDelegate())
listmodel = QtGui.QStandardItemModel()
t = '123456789'
for x in range(10):
itemmodel=QtGui.QStandardItem(t)
listmodel.appendRow(itemmodel)
self.listview.setModel(listmodel)
def main():
app = QtGui.QApplication(sys.argv)
mw = MyApp()
mw.show()
app.exec_()
if __name__=="__main__":
main()
감사합니다 것입니다 말했다되고 있음을,있다 : 여기에 코드입니다 armonge,하지만 실제로 원하는 것은 * qlistview 행의 크기를 조정하는 것입니다. 코드를 사용하면 편집기가 다른 행에 걸쳐 숨겨져 있습니다. 그리고 setCentralWidget 팁을 주셔서 감사합니다. – Tiago