Frameworks, platforms, toolkits. PyQT calls itself a toolkit. DirectX is a full featured framework like you described, and it is intended to run on platforms like Windows and Xbox. I use the ExpressJS framework for web development, but most of it's core functionality is either in the NodeJS server, which is not officially referred to as a framework AFAIK; it exposes pretty much the whole OS through a javascript interface for server side interweb code. For scientific programming, Matlab and Octave both just call themselves languages, but I would call them platforms because they have a graphical interface and GUI building tools, and a whole ecosystem of modules, and because your code lives inside of their system. OpenGL, scipy and numpy are libraries, by contrast, because they are used as a component inside of your project. And then there are content management systems (CMS) like Wordpress and Drupal, enterprise resource planning systems (ERP) like Tryton, and probably a bunch of other sub-categories of the "framework" and "platform" categories of software.
All in all, it's not easy to categorize software. We need to standardise a taxonomy, and then make new standardized taxonomies to make up for deficiencies in the first one ;)