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.如果出现屏幕外,重现设置窗口起始位置,否则不做改变