'''
【简介】
PyQt5中Qlabel例子
按住 Alt + N , Alt + P , Alt + O , Alt + C 切换组件控件
'''
from PyQt5.QtWidgets import *
import sys
class QlabelDemo(QDialog):
def init (self ):
super(). init ()
def link_hovered():
print("当鼠标滑过label-2标签时,触发事件。")
def link_clicked():
print("当鼠标点击label-4标签时,触发事件。" )
if name == " main ":
app = QApplication(sys.argv)
labelDemo = QlabelDemo()
labelDemo.show()
sys.exit(app.exec_())
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
class EventFilter(QDialog):
def init (self, parent=None):
super(EventFilter, self). init (parent)
self.setWindowTitle("事件过滤器")
if name == ' main ':
app = QApplication(sys.argv)
dialog = EventFilter()
dialog.show()
sys.exit(app.exec_())
1.改变窗口状态
下列的方法可用来改变或判断窗口的状态(最小化、最大化、隐藏和显示):
from PyQt5 import QtCore, QtWidgets
class MyWindow(QtWidgets.QWidget):
def init (self, parent=None):
QtWidgets.QWidget. init (self, parent)
self.resize(300, 100)
def changeEvent(self, e):
if e.type() == QtCore.QEvent.WindowStateChange:
if self.isMinimized():
print("窗口最小化")
elif self.isMaximized():
print("窗口最大化")
elif self.isFullScreen():
print("全屏显示")
elif self.isActiveWindow():
print("活动窗口")
QtWidgets.QWidget.changeEvent(self, e)
def showEvent(self, e):
print("窗口显示")
QtWidgets.QWidget.showEvent(self, e)
def hideEvent(self, e):
print("窗口隐藏")
QtWidgets.QWidget.hideEvent(self, e)
if name == " main ":
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
2.改变窗口的位置和尺寸
移动窗口、调整窗口尺寸时,下列方法将被调用:
from PyQt5 import QtWidgets
class MyWindow(QtWidgets.QWidget):
def init (self, parent=None):
QtWidgets.QWidget. init (self, parent)
self.resize(300, 100)
def moveEvent(self, e):
print("x = {0}y = {1}".format(e.pos().x(), e.pos().y()))
QtWidgets.QWidget.moveEvent(self, e)
def resizeEvent(self, e):
print("w = {0}h = {1}".format(e.size().width(),e.size().height()))
QtWidgets.QWidget.resizeEvent(self, e)
if name == " main ":
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
3.重绘窗口
当控件或控件的部分变为可见时,控件需要重绘。此时,paintEvent(self,event)被调用。event参数包含QPaintEvent类的实例,通过该类有以下方法:
4.阻止窗口关闭
通过单击窗口标题栏中的关闭按钮或调用close()方法来关闭窗口时,closeEvent(self,event)方法被调用。 通过event参数可获得QCloseEvent类的一个对象。 为了防止窗口关闭,必须通过该对象调用ignore()方法,否则调用accept()方法。
下面的例子为:单击关闭按钮将显示一个标准对话框,要求确认是否关闭该窗口。 如果用户单击“是”按钮,则关闭窗口;如果用户单击“否”按钮,则仅关闭对话框,窗口不会被关闭。
from PyQt5 import QtWidgets
class MyWindow(QtWidgets.QWidget):
def init (self, parent=None):
QtWidgets.QWidget. init (self, parent)
self.resize(300, 100)
def closeEvent(self, e):
result = QtWidgets.QMessageBox.question(self,
"关闭窗口确认",
"真的要关闭窗口?",
QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,
QtWidgets.QMessageBox.No)
if result == QtWidgets.QMessageBox.Yes:
e.accept()
QtWidgets.QWidget.closeEvent(self, e)
else:
e.ignore()
if name == " main ":
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)