In QWebEngineDownloadItem we can access the URL that is triggerring the download but not any headers from the response. In particular, the Content-Disposition header, which can help to choose a filename for the download.
This makes implementing file downloads difficult. Either one has to generate some kind of filename from the URL, or make a separate HEAD request to the server to fetch the Content-Disposition header. And since there is no way to make requests via QWebEngine, it has to be done via QNetworkAccessManager, which means it wont work for downloads that are protected by authentication.
I dont know if the chromium API exposes endpoints to do this, but I will note that chromium itself uses the value from Content-Disposition to generate a filename for downloads.