В настоящее время я изучаю библиотеку Pyqt6, и я хочу получить геометрию окна. Проблема в том, что положение X и Y всегда 0 даже после того, как я изменяю положение окна на экране.
Версия Python: 3.9.*< /li>
Библиотека pyqt6 < /li>
< /ol>
import sys
from PyQt6.QtWidgets import QApplication, QVBoxLayout, QPushButton, QWidget
from PyQt6.QtCore import QTimer
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.resize(200, 300)
self.setWindowTitle("Main Window")
layout = QVBoxLayout()
btn = QPushButton("Click", self)
btn.clicked.connect(self.print_geometry)
layout.addWidget(btn)
self.setLayout(layout)
self.show()
QTimer.singleShot(100, self.move_to_top_left)
def print_geometry(self):
print(self.geometry()) # This will now print the correct geometry
if __name__ == '__main__':
app = QApplication(sys.argv)
win = MainWindow()
sys.exit(app.exec())
< /code>
output: < /p>
PyQt6.QtCore.QRect(0, 0, 200, 300)
PyQt6.QtCore.QRect(0, 0, 200, 300)
PyQt6.QtCore.QRect(0, 0, 200, 300)
PyQt6.QtCore.QRect(0, 0, 200, 300)
< /code>
Я не знаю, почему он возвращает 0 для положения X и Y. Это должно было вернуть точную позицию.
Подробнее здесь: https://stackoverflow.com/questions/794 ... the-window