Hi @Mina, welcome to the forum
No, not particularly. If you have a look at the BlueROV2’s Software Components you can see that QGroundControl (QGC) is just one part of the system, and if you make an alternative ground control software (GCS) that can accept the relevant inputs and transmit the relevant outputs then you can replace QGC. There are already a few options discussed in the Third Party Products / Ground Control Software forum category, which may give some idea of what others have tried and how they’ve approached it.
QGC is open source - you can customise it as much as you want and build your own versions of it, and they have a developer guide for getting started with that. Note that QGC is quite complex, particularly because it’s made to support several vehicle types which ROVs are only one of, so it includes several features and components that aren’t relevant to or used when controlling our ROVs.
For a standard BlueROV2, the only required component for controlling it is a mavlink stream, using the common and ardupilotmega message sets. You can use pymavlink to get started with that, but if you’re planning to make a full GCS and want it to be high performance then you’ll probably want to use a compiled option instead.
It’s likely you’ll want to view the video stream, in which case you’ll need something that can access and display a H264-encoded video stream from a UDP port. That can be a separate application to your GCS if you want (e.g. VLC/OBS), but if you want to have an integrated application you might want to use a library like gstreamer (which is what QGC uses).
If you’re planning to upgrade your ROV to include some kind of positioning system then you’ll also need to have some way of displaying that on a map. If that’s a GPS system that you want to integrate directly to the top-side then your GCS will need to be able to accept and parse some form of GPS communication (e.g. NMEA messages), but that’s likely better left until you have the earlier components in a usable state, especially since some positioning systems will communicate directly with the ROV in which case the GCS just needs to be able to display the positions it receives via mavlink.