QVariant используется для хранения ссылок на значения, где вы не обязательно знаете, что находится внутри. Это способ создания API, которые могут принимать «что угодно» как ссылку на неизвестный тип. IE, вместо того, чтобы иметь API, который принимает long, и другой для int, и другой для float, и другой для строки, вы можете иметь один API, который вместо этого принимает QVariant.
Затем внутри более сложной функции, где вам нужен определенный тип (как в QSettings), вы можете извлечь то, что вам нужно, из Варианта после получения его обратно.