Чтобы виджет, такой как QPushButton, был частью окна, виджет должен быть выполнен:
- быть дочерью окна или
- будь ребенком какого-то ребенка из окна или
- это часть макета, которая принадлежит окну.
В вашем случае QPushButton не встречает ничего из этого, поэтому это будет новое окно. Так что это можно решить с помощью правила 1 или 3:
import sys
from PyQt5 import QtWidgets
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setGeometry(0, 0, 500, 300)
window.setWindowTitle("UI")
btn = QtWidgets.QPushButton("Test", window)
btn.resize(100,100)
btn.move(100,100)
window.show()
sys.exit(app.exec_())
Или:
import sys
from PyQt5 import QtWidgets
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setGeometry(0, 0, 500, 300)
window.setWindowTitle("UI")
btn = QtWidgets.QPushButton("Test")
lay = QtWidgets.QHBoxLayout(window)
lay.addWidget(btn)
window.show()
sys.exit(app.exec_())