Ich habe glücklicherweise selbst eine Lösung gefunden:
MainWindow.cpp
basis_canvas = new PaintBasis(this); ui->setupUi(this); this->setStyleSheet("background-color: #C0A080"); basis_canvas->setGeometry(0, 0, 1900, 2205); //ScrollArea QScrollArea* scrollArea = new QScrollArea; scrollArea->setWidget(basis_canvas); setCentralWidget(scrollArea); nd = new ND(); pfd = new PFD(); for (int i = 0; i <= 3; i++) { monitor[i] = new Monitor(basis_canvas); monitorleer[i] = new MonitorLeer(); } monitor[0]->setGeometry(10, 1070, 400, 400); monitor[1]->setGeometry(420, 1070, 400, 400); monitor[2]->setGeometry(1020, 1070, 400, 400); monitor[3]->setGeometry(1020, 1480, 400, 400); monitor[0]->SetMyChild(pfd); monitor[1]->SetMyChild(nd); monitor[2]->SetMyChild(monitorleer[2]); monitor[3]->SetMyChild(monitorleer[3]);Monitor.cpp
Monitor::Monitor(QWidget* parent) : QWidget(parent) {} void Monitor::SetMyChild(QWidget* mychild) { mychild->setParent(this); mychild->show(); }Wenn ich z.B. über die Funktion SetMyChild zugreife und bspw. monitor[0]->SetMyChild(nd); schreibe, springt der nd-Inhalt zwar auf monitor[0] aber der monitor[1], der ja vorher nd hatte, wird dann schwarz. Für meinen Fall aber in Ordnung.