2014-11-13 9 views
1

У меня есть QTableWidget, где я бы хотел заполнить поля на другом QTableWidget.Можно ли добавить QTableWidget внутри другого QTableWidget?

Это то, что это будет выглядеть так:

-------------------------- 
Name | Class | Section | 
--------------------------- 
    |  | Some Text | 
A | 1 | CheckBox 1 | 
    |  | CheckBox 2 | 
--------------------------- 

Я хочу добавить Table B в каждом из полей в колонке раздела так, что легче для меня, чтобы иметь дело с каждым флажков для каждого элемента в Table A (основной Table).

Возможно ли это? Есть ли более эффективные способы решения этой проблемы?

ответ

3

Использование пользовательских виджетов вместо:

QWidget *wgt = new QWidget(); 
QVBoxLayout *hlayout = new QVBoxLayout; 
QCheckBox *check1 = new QCheckBox("1"); 
QCheckBox *check2 = new QCheckBox("2"); 
QLineEdit *lineEdit = new QLineEdit; 
lineEdit->setText("test"); 
hlayout->addWidget(lineEdit); 
hlayout->addWidget(check1); 
hlayout->addWidget(check2); 
wgt->setLayout(hlayout); 
ui->tableWidget->setCellWidget(0,2,wgt); 
ui->tableWidget->resizeRowsToContents(); 

С setCellWidget вы можете добавить еще один QTableWidget, но я думаю, что QWidget будет достаточно.

Вы можете добавить, например: lineEdit->setStyleSheet("border:0px");, и ваш lineEdit будет без границ или используйте только QLabel, вместо этого он виджет, сделает все, что вам нужно.

Результат:

enter image description here

Смежные вопросы