Yes, the tablewidget has a signal for that: QTableWidget::itemClicked().
You could try with QTableWidget::itemEntered() but it might need more sophisticated mouse event handling.
There are several options to do a context menu.
One is to add actions to the widget and set the context menu policy to ActionContextMenu.
Another is to connect to the contextMenuRequested() signal and set the context menu policy appropriately.
What is the thickness? The width of a vertical scrollbar?
Image should be possible via QTableWidgetItem::setIcon(), or setting the filename as item data and using a custom item delegate for painting or setting a suitable cell widget.
Also a couple of options, e.g. a custom item delegate that reports that as its sizeHint or changing the column size through the horizontal header view, respectively the row height through the vertical header view.
Cheers,
_
Bookmarks