【发布时间】:2018-12-05 05:45:47
【问题描述】:
我想知道当光标超出时如何更改 qframe 的大小
也就是说:
默认值:宽度(50) 框架上的光标:宽度(100) 框架外的光标:宽度(50)
根据我的研究,我认为它使用的是 dragEnterEvent 和 dragLeaveEvent
这是我尝试过的:
from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5 import QtCore
from PyQt5 import uic
class Principal(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
uic.loadUi("other.ui",self)
def dragEnterEvent(self,obj,event):
if event == self.mouseMoveEvent:
if obj == self.frame:
self.frame.width(100)
def dragLeaveEvent(self,obj,event):
if event == self.mouseMoveEvent:
if obj == self.frame:
self.frame.width(50)
app = QApplication([])
p = Principal()
p.show()
app.exec_()
其他.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>580</width>
<height>368</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>180</x>
<y>70</y>
<width>151</width>
<height>141</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">
background:red;
</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>
【问题讨论】:
标签: python python-3.x pyqt pyqt5 qt-designer