добавление тулбокс к QTableView

Чтобы добавить кнопки управления (ToolBox) сверху к таблице QTableView первое, что приходит в голову штатно сделать через setStyleSheet отступ сверху для таблицы:

QString st = "QTableView{\n"\
		"border: 2px solid #3873d9;\n"\
		"padding-top: 45px;\n"\
		"/*background-color: yellow;*/\n"\
		"selection-background-color: green;\n"\
		"}\n";

view->setStyleSheet(st);

Потом просто в конструкторе наследника от QTableView создаем объект от QWidget, например так:

tlbx = new Tlb_Btns(this);

Это приводит в к появлению визуального объекта tlbx сверху в области QTableView в левом верхнем углу (кнопки 1 2 3).

Но это решение не адаптивное, то есть при изменении размера шрифта например могут все объекты значительно наезжать друг на друга.

Правильное решение

Правильно делать это делать так: создаем QTableView. При создании передаем указатель на layout, куда поместить QTableView. Но в QTableView конструкторе сначала создаем виджет toolBox с кнопками и его первым помещаем в layout (чтобы он был сверху). Потом в layout помещаем сам QTableView и еще все, что угодно.

Получится примерно вот так QpTableViewWrapper.

фотка 1

Скачать наше развитие модель-представление Qt, где все это уже реализовано можно здесь скачать sql развитие модель-представление.


QTableView новые возможности