PyQt 自定义图形与交互:从基础到实战
1. 自定义 QWidget 基础
在 PyQt 中,自定义小部件的外观和行为有多种方式。最简单且常用的方法是设置现有小部件的属性。从 Qt 4.2 开始,样式表属性可用,通过使用 CSS 语法输入纯文本,能显著改变小部件的外观,比如设置必填小部件的背景颜色。
还有组合小部件的方式,它允许将两个或更多小部件布局在一起,并将结果视为单个小部件。这在频繁使用组合小部件时能节省时间,也为在主窗口样式应用程序的中央区域放置多个小部件提供了方法。有些程序员会将组成部件设为私有并转发其信号和槽,但很多情况下,将组成部件作为公共实例变量直接访问和连接更为简单。
若要创建与现有小部件不同的自定义小部件,或者想完全控制其外观和行为,可以子类化 QWidget。子类必须重新实现paintEvent()、sizeHint()和minimumSizeHint(),并且几乎总是需要重新实现keyPressEvent()和一些鼠标事件处理程序。
以下是一个绘制特定图形的示例代码:
painter.setBrush(QBrush(gradient)) painter.drawPolygon( QPolygon([cx, cy, dx, dy, ex, ey, fx, fy]))这里,通过设置画刷和绘制多边形,实现了图形的绘制。右侧部分(形状 (d, e, f, c))与左侧部分非常相似,