mousePressEvent をオーバーライド

class NoClearListWidget : public QListWidget
{
    Q_OBJECT
public:
    using QListWidget::QListWidget;

protected:
    void mousePressEvent(QMouseEvent* event) override
    {
        QModelIndex index = indexAt(event->pos());

        // アイテムがない場所をクリックしたら無視
        if (!index.isValid()) {
            event->ignore();
            return;
        }

        QListWidget::mousePressEvent(event);
    }
};