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
1 Asked on January 5, 2021 by collob
0 Asked on January 5, 2021
c %d0%b3%d1%80%d0%b0%d1%84%d0%b8%d0%ba%d0%b0 %d0%bc%d0%b0%d1%81%d1%81%d0%b8%d0%b2%d1%8b %d1%81%d0%ba%d1%80%d0%b8%d0%bd%d1%88%d0%be%d1%82
0 Asked on January 4, 2021 by zeni1agent
1 Asked on January 4, 2021
1 Asked on January 4, 2021 by homie
1 Asked on January 4, 2021 by blck4
1 Asked on January 3, 2021 by konstantin
1 Asked on January 3, 2021 by kunoichi
collation sql sql server %d0%b1%d0%b0%d0%b7%d0%b0 %d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85
1 Asked on January 3, 2021 by helen
%d0%b1%d0%b0%d0%b7%d0%b0 %d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d1%85 %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 3, 2021 by hazcker
0 Asked on January 3, 2021
Get help from others!
Recent Questions
Recent Answers
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP