1. 程式人生 > >PyQt5 Win10防止窗口出現在螢幕外

PyQt5 Win10防止窗口出現在螢幕外

from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
app = QApplication(sys.argv)
screen = app.primaryScreen()
size = screen.size()
height, width = size.height(), size.width()#得到螢幕解析度

def adjust_outofscreen(self, x, y,h, w):#x,y是視窗本來出現的座標,h,w是視窗的高和寬
        y=height-h-60 if y>(height-h-60) else y #60是工作列的高度,如果需要可對x進行相同操作
        return x,y#視窗的高和寬不變,返回新的視窗位置

在Ubuntu上不會有出現在螢幕外的問題,但是在win10上會出現,win7上面沒有測試過。

解決的大致原理:

1.得到螢幕解析度,也就是螢幕高和寬

2.判斷視窗是否會出現在螢幕外

3.如果出現螢幕外,重現設定視窗起始位置,否則不做改變