尺寸限定
给QWiget设置最大最小尺寸
给QWiget中的label设置内容边距
from PyQt5.Qt import *
import sys
if __name__=='__main__':
app=QApplication(sys.argv)
win=QWidget()
win.setWindowTitle('最大最小尺寸')
# win.setFixedSize(500,500)#这是设定固定尺寸
'''最大最小尺寸'''
# win.setMinimumSize(200,200)#设定最小尺寸
win.setMaximumSize(500,500)#设定最大尺寸
# win.setMinimumHeight(200)#限定最小高度
# win.setMaximumHeight(600)#限定最大高度
win.resize(1000,1000)#并不能变大!因为已经限定了
''''内容边距'''
label=QLabel(win)
label.setText('学习PYQT5,加油')
label.resize(300,300)
label.setStyleSheet('background-color:cyan;')
label.setContentsMargins(100,200,0,0)#设置左,上,右,下的边距
print(label.getContentsMargins())#获取内容边距
win.show()
sys.exit(app.exec_())
内容边距如图:
鼠标操作
from PyQt5.Qt import *
import sys
class mywin(QWidget):
def __init__(self):
super().__init__()
def mouseMoveEvent(self,me):
print('鼠标移动了',':',me.globalPos())#打印全局xy
print('鼠标移动了',':',me.localPos())#打印局部xy
if __name__=='__main__':
app=QApplication(sys.argv)
win=QWidget()
win.setWindowTitle('鼠标操作')
win.resize(500,500)
label=QLabel(win)
label.setText('学习pyqt5')
label.resize(100,100)
label.setStyleSheet('background-color:cyan;')
'''设置鼠标形状'''
# win.setCursor(Qt.BusyCursor)#繁忙样式
# win.setCursor(Qt.ForbiddenCursor)#禁止访问样式
label.setCursor(Qt.CrossCursor)
pixmap=QPixmap('exit.png')
pixmap_1=pixmap.scaled(30,30)#设置图片大小,注意没直接缩放,而是缩放后返回值
cursor=QCursor(pixmap_1,0, 0)#先创建鼠标对象,设置热点(默认是中心点)0,0为左上角
win.setCursor(cursor)#自定义样式
'''恢复鼠标形状'''
win.unsetCursor()
'''获取鼠标对象'''
print(win.cursor())
current_cursor=win.cursor()
print(current_cursor.pos()) #获取鼠标位置
current_cursor.setPos(0,0) #设置鼠标位置
'''鼠标跟踪'''
#设置了鼠标跟踪,则不按住鼠标移动,也会触发MouseMoveEvent事件
win_1=mywin()
win_1.resize(400,400)
win_1.setMouseTracking(True)#设置鼠标追踪
win_1.show()
win.show()
sys.exit(app.exec_())
鼠标追踪案例
题目:设计一个界面,鼠标为自定义图标(鼠标热点为左上角);当鼠标在界面中移动时,界面中的label随之移动
from PyQt5.Qt import *
import sys
class mylabel(QLabel):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
self.setWindowTitle('鼠标操作案例')
self.resize(500, 500)
'''设置自定义鼠标'''
pixmap = QPixmap('exit.png')#图片为同级目录下的图片
cursor = QCursor(pixmap.scaled(30, 30), 0, 0)#scaled方法返回缩放后的图片
#创建出label
self.label = QLabel(self)
self.label.move(0, 0)
self.label.resize(100, 100)
self.label.setStyleSheet('background-color:cyan;')
self.setCursor(cursor)#将自定义鼠标设置给界面
self.setMouseTracking(True)#开启鼠标追踪
self.show()
def mouseMoveEvent(self,me):
x=me.localPos().x()
y = me.localPos().y()#获取鼠标位置
print(x,y)
self.label.move(x,y)#移动label
if __name__=='__main__':
app=QApplication(sys.argv)
win=mylabel()
sys.exit(app.exec_())