을 tablewidget :Qt는 내가 이런 tablewidget을 만들어 편집 상자
I 셀 (0) 값 (더블 클릭)를 편집 할하지만 편집 상자가 너무 커서 그것을 셀 커버 (1) :
가 어떻게 그 후 세포를 덮고있는 편집 상자를 방지합니까?
을 tablewidget :Qt는 내가 이런 tablewidget을 만들어 편집 상자
I 셀 (0) 값 (더블 클릭)를 편집 할하지만 편집 상자가 너무 커서 그것을 셀 커버 (1) :
가 어떻게 그 후 세포를 덮고있는 편집 상자를 방지합니까?
자신의 자식 QStyledItemDelegate를 만들고 QStyledItemDelegate :: createEditor 메서드를 재정의해야합니다. 그런
예시 :
QWidget * MyStyledItemDelegate::createEditor(QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index) const
{
QWidget * editor = QStyledItemDelegate::createEditor(parent, option, index);
editor->setWidth(20); // Handle editor here.
return editor;
}
QTableWidget * table; table-> setItemDelegate (new MyStyledItemDelegate); – Stone
또 다른 질문, setWidth (width)를 원한다면 MyStyleItemDelegate에 너비 매개 변수를 전달해야합니다. 그것을하는 방법? 감사. – Stone
일반적인 C++ 문제입니다. 클래스에 매개 변수를 전달하는 방법. 다수 및 많은 방법, 1) MyStyledItemDelegate() * 테이블의 생성자를 통해, table-> setItemDelegate (new MyStyledItemDelegate (20)); 생성자를 다시 정의해야합니다. 2) "setter"기능 사용 MyStyledItemDelegate * myDelegate = 새 MyStyledItemDelegate; myDelegate-> setEditorWidth (20); setEditorWidth()를 구현해야 함 – stanislav888
호'테이블 -> resizeColumnsToContents() '[resizeColumnsToContents (http://doc.qt.io/qt-4.8/qtableview.html#resizeColumnsToContents) – Simon
I table-> resizeColumnsToContents();를 추가하십시오. 편집 상자는 너무 커서 이후에 셀을 감싸기에는 너무 크다. – Stone