Когда виджет является сыном окна, он помещается поверх него, в вашем случае второй виджет помещается поверх первого.Если вы хотите, чтобы оба виджета не перекрывались, возможное решение - использовать макет, установленный в центральном виджете
# ...
def setupobject(self):
self.windetails = [
int(1130 * self.xfactor),
int(732 * self.yfactor),
int(470 * self.xfactor),
int(160 * self.yfactor),
]
pepwin_ = pepwin(self)
pepwin_.setupwindow(self.windetails, self.xfactor, self.yfactor)
pepwin_.setbtncnfg(3, 3, self.windetails[2], self.windetails[3])
pepwin_.settext(1, 1, "Select\nFiles")
pepwin_.settext(3, 3, "Exit")
self.windetails = [0, 0, 1600.0 * self.xfactor, 50.0 * self.yfactor]
scrntitle_ = screentitle(self)
scrntitle_.setuowindow(self.windetails, self.xfactor, self.yfactor)
centralwidget = QtWidgets.QWidget()
self.setCentralWidget(centralwidget)
lay = QtWidgets.QVBoxLayout(centralwidget)
lay.addWidget(pepwin_)
lay.addWidget(scrntitle_)
# ...