Я пытаюсь сделать GUI и у меня проблемы с позиционированием виджета. Я хотел бы изменить ie позицию одного виджета (A) на позицию другого (B), который добавлен в GridLayout. Итак, основная идея: A.pos () = B.pos () + DELTA.
Подробно:
Пусть у нас будет такой QWidget с QGridLayout, содержащий четыре Qlabels:
import sys
from PySide2.QtWidgets import*
from PySide2.QtGui import*
from PySide2.QtCore import*
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QWidget()
w.resize(500, 300)
lab1 = QLabel("label1")
lab2 = QLabel("label2")
lab3 = QLabel("label3")
lab4 = QLabel("label4")
lay = QGridLayout()
lay.addWidget(lab1,0,0)
lay.addWidget(lab2,0,1)
lay.addWidget(lab3,1,0)
lay.addWidget(lab4,1,1)
w.setLayout(lay)
w.show()
sys.exit(app.exec_())
Экран GUI здесь
Итак, я хотел бы создать QLineEdit, который будет размещен прямо над lab4 и пытается реализовать что-то вроде:
le = QLineEdit(w)
le.setGeometry(QRect(lab4.pos().x(),lab4.pos().y()+10,20,20))
Но если сделать print (lab4.pos (). X (), lab4.pos (). Y ()), он напечатает (0,0) ... и мой GUI будет выглядеть вот так
Но я хочу, чтобы он выглядел так
Пожалуйста, помогите мне правильно настроить мой виджет. Как вы заметили, я пишу на PyQT, но если вы ответите мне на C ++ QT, я тоже буду благодарен!