0
我想到了一個簡單的算法,並實現了它這樣的:居中窗口,它的父窗口的中心妥善PyQt5
def parentcenter(self):
self.move(self.parent().frameGeometry().center().x() - self.frameGeometry().width()/2, self.parent().frameGeometry().center().y() - self.frameGeometry().height()/2)
它在紙面上看起來不錯,但它不能正常工作。子窗口將其放置在self.parent().frameGeometry().center()
處。我還試圖通過做print(self.frameGeometry().width())
打印子窗口的寬度和高度來查看是否有錯誤,並且確實如此。值的寬度和高度顯示比我預期的要小得多。我的子窗口的寬度值爲100,填滿屏幕的1/3。我的屏幕分辨率不像300x300 lol
爲什麼會發生這種情況?或者我仍然可以在不使用上述方法的情況下居中我的子窗口?
你有沒有試過在繪製窗口後使用'QTimer'來調用'parentcenter'?我懷疑你在窗口之前使用的值實際上是正確的大小。嘗試將'QTimer.singleShot(100,self.parentcenter)'添加到類的__init__方法中。 –
QTimer函數無法正常工作,但是您給了我調用父中心的想法,之後窗口已經被繪製出來,所以我嘗試了它,並且它工作正常!我知道我的代碼是正確的:D再次感謝! – Desertricker
太棒了,很高興我能幫到你! –