Stack Overflow на русском Asked by PrinterOMG on September 27, 2020
Подксажите как получить координаты окна в PyQt5 или хоть как-нибудь определить его положение на экране. Мне нужно чтобы новое окно открывалось на месте предыдуещго, может есть какой-то другой способ. Пробовал через положение курсора при нажатии кнопки, но это совсем дичь получается. Спасибо!
Для получить координат окна и определения его положение на экране
хорошо подходит frameGeometry : const QRect
-
геометрия виджета относительно его родителя, включая любую рамку окна.
Другое дело когда вы собираетесь отслеживать местоположение окна на экране.
Попробуйте пример, измените его размер, а также попробуйте перетащить окно не изменяя его размер.
import sys
from PyQt5.QtCore import QTimeLine, QEvent
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
class Demo(QWidget):
def __init__(self):
super(Demo, self).__init__()
self.resize(600, 600)
self.w = self.size().width()
print(self.w)
self.label = QLabel('<h2 style="color: blue;">Hello PyQt5</h2>', self)
self.label.move(-100, 100)
self.timeline = QTimeLine(6000*2, self)
self.timeline.setFrameRange(0, self.w+100)
self.timeline.frameChanged.connect(self.set_frame_func)
self.timeline.setLoopCount(0)
self.timeline.start()
self.frame_geometry = None # !!!
def set_frame_func(self, frame):
self.label.move(-100+frame, 100)
if self.frame_geometry != self.frameGeometry(): # !!!
self.frame_geometry = self.frameGeometry()
print(f' set_frame_func: -> {self.frame_geometry}')
def resizeEvent(self, event):
super(Demo, self).resizeEvent(event)
self.w = self.size().width()
self.timeline.setFrameRange(0, self.w+100)
duration = self.w * 20
self.timeline.setDuration(duration)
self.frame_geometry = self.frameGeometry() # !!!
print(f'+++ releaseEvent -> {self.frame_geometry}')
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())
Answered by S. Nick on September 27, 2020
0 Asked on January 10, 2021
2 Asked on January 9, 2021 by disney
1 Asked on January 8, 2021 by pascalnewbie1112
1 Asked on January 8, 2021 by kizat-suleimenov
0 Asked on January 8, 2021 by vrtnev
0 Asked on January 8, 2021 by ratatuy-129
0 Asked on January 8, 2021
%d1%8f%d0%bd%d0%b4%d0%b5%d0%ba%d1%81 %d0%ba%d0%b0%d1%80%d1%82%d1%8b
1 Asked on January 8, 2021 by denys-duv
0 Asked on January 7, 2021 by bylbyl9tor
0 Asked on January 7, 2021
android api backend ios %d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d1%8c
2 Asked on January 7, 2021 by dmitry-pavlushin
c javascript %d1%86%d0%b8%d1%84%d1%80%d0%be%d0%b2%d0%b0%d1%8f %d0%bf%d0%be%d0%b4%d0%bf%d0%b8%d1%81%d1%8c
0 Asked on January 7, 2021 by py_dg
0 Asked on January 7, 2021
2 Asked on January 6, 2021 by gr_new
1 Asked on January 6, 2021 by ghoste
curl php %d0%b1%d0%b5%d0%b7%d0%be%d0%bf%d0%b0%d1%81%d0%bd%d0%be%d1%81%d1%82%d1%8c
0 Asked on January 6, 2021 by dmitry-artamonov
1 Asked on January 5, 2021 by stanislav-pro
Get help from others!
Recent Answers
© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP