首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PySide6 GUI 编程(43):自定义 QWidget

重载 paintEvent 方法 paintEvent的作用 paintEvent 方法是一个重要的事件处理函数,用于自定义控件的绘制。...自定义绘制: paintEvent 允许开发者在控件上绘制自定义内容,比如图形、文本、图像等。通过重写这个方法,可以实现复杂的自定义界面。...处理绘制事件: 当控件需要更新其显示内容时,Qt 会自动调用 paintEvent。这包括窗口的重绘、控件的状态变化等。...使用 QPainter: 在 paintEvent 中,通常会使用 QPainter 类来执行绘制操作。QPainter 提供了丰富的绘图功能,包括绘制线条、矩形、圆形、文本等。...paintEvent 的函数原型 def paintEvent(self, event: QPaintEvent): # 自定义绘制代码 paintEvent示例代码 from __future

24465
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例

    __init__(parent) self.setWindowTitle("paintEvent设置背景颜色") def paintEvent(self, event): painter...__init__(parent) self.setWindowTitle("paintEvent设置背景颜色") def paintEvent(self, event): painter...(self,QPaintEvent) 通过重载paintEvent()函数绘制窗口背景 不规则窗口实例 1 实现不规则窗口的最简单方式就是图片素材不仅当遮罩层,还当背景图片,通过重载paintEvent...不规则窗口实例 2 使用两张图片,一张用来做遮罩来控制窗口的大小,然后在利用paintEvent()函数重绘另一张为窗口的背景图。...在窗体首次绘制加载, 要重新加载paintEvent # 需要重新加载窗口使用 self.update() or self.repaint() def paintEvent(self, event

    2.9K22

    浅谈基于QT的截图工具的设计与实现

    回到实际的部分,我们先使用QT编写一个窗体widget,然后重写窗体的paintEvent方法: class DemoWidget: public QWidget { public: void paintEvent...比如上面的动图中第一次的paintEvent。 窗体失去焦点,获得焦点等,之后几次paintEvent出发就是因此产生的。 当窗口控件被其他部件遮挡,然后又显示出来时,会对隐藏的区域产生一个重绘事件。...所以,绝对不能在paintEvent中调用repaint,这样会死循环。...比如,我们可以在调用update的地方多赋值几次调用: 在实际调用中,只会触发一次paintEvent: 如果换成调用5次repaint就会发现每调用一次就会触发一次paintEvent,读者可以自行测试...但一旦我们将鼠标移动到左上角,位于起始位置的左边和上边的时候,就应该用当前鼠标的位置作为矩形的左上角了: 于是,我们需要适当修改以下paintEvent中的代码: void paintEvent(

    43620

    Qt中国象棋一—— Qt 2D 绘图入门

    重新实现QWidget::paintEvent() 可用于订制窗口部件,并且可以设计出自己想要的风格。 一个常见的需求是在二维画板上显示大量的、轻量级的并且可与用户交互的项。...二、画一条线段 在绘图设备上(一般是窗口部件上)绘图,需要重新实现Qt的绘图事件——paintEvent。 什么情况下会产一个绘图事件呢?...1)当窗口部件第一次显示时,系统会自动产生一个绘图事件 2)重新调整窗口部件大小 3)当窗口部件被其他部件遮挡,然后又再次显示出来时,就会对隐藏的区域产生一个重绘事件 void Widget::paintEvent...三、画文本与画矩形 这次是绘图逻辑分离出来,然后在paintEvent(QPaintEvent *event)中调用。...painter.drawText(rect, Qt::AlignCenter,"Hello World"); painter.drawRect(rect);} void Widget::paintEvent

    1.8K10

    30.QT-渐变之QLinearGradient、 QConicalGradient、QRadialGradient

    x1,y1表示渐变起始坐标, x2,y2表示渐变终点坐标 //如果只有x相等,则表示垂直线性渐变,如果只有y相等,则表示平行线性渐变,否则就是斜角线性渐变 示例1-垂直渐变: void Widget::paintEvent...示例2-水平渐变 void Widget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHint...fy ); // cx cy : 设置圆的中心原点(center) // radius:设置圆半径 //fx fy : 设置焦点focus,也就是颜色的起始位置 示例1: void Widget::paintEvent...示例2: void Widget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHint(QPainter...QConicalGradient ( qreal cx, qreal cy, qreal angle ); //设置(cx,cy)位置为圆锥尖,设置angle角度为起始颜色位置(顺时针渐变) 示例: void Widget::paintEvent

    1.7K50
    领券