欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > pyQT学习笔记——Qt常用组件与绘图类的使用指南

pyQT学习笔记——Qt常用组件与绘图类的使用指南

2025/3/17 13:03:13 来源:https://blog.csdn.net/zxjiaya/article/details/146165788  浏览:    关键词:pyQT学习笔记——Qt常用组件与绘图类的使用指南

Qt常用组件与绘图类的使用指南

    • 一、大小策略(Size Policy)
      • 1.1 大小策略概述
      • 1.2 具体参数
      • 1.3 其他常见策略
      • 1.4 伸展值的作用
    • 二、常用组件的使用
      • 2.1 QSpinBox 和 QComboBox
        • 示例代码
      • 2.2 QDialog
        • 示例代码
      • 2.3 QTableView
        • 示例代码
    • 三、QPainter 类介绍
      • 3.1 QPainter 的使用
        • 示例代码
      • 3.2 QPainter 的功能

一、大小策略(Size Policy)

1.1 大小策略概述

大小策略是Qt中用于控制控件在布局中如何调整大小的机制。它决定了控件在水平和垂直方向上的行为。通过设置大小策略,可以实现控件的自适应布局,使界面更加灵活。

1.2 具体参数

sizePolicy: [Preferred, Preferred, 0, 0]
  • 水平策略Preferred
    控件会根据内容调整大小,但不会强制填充可用空间。如果布局中有额外空间,控件不会扩展;如果空间不足,控件会缩小到最小大小。

  • 垂直策略Preferred
    同水平策略,控件会根据内容调整大小,但不会强制填充可用空间。

  • 水平伸展0
    表示控件在水平方向上不会扩展以填充额外空间。

  • 垂直伸展0
    表示控件在垂直方向上不会扩展以填充额外空间。

1.3 其他常见策略

  • Fixed:控件大小固定,无法调整。
  • Minimum:控件大小不能小于最小大小,但可以扩展。
  • Maximum:控件大小不能超过最大大小,但可以缩小。
  • Expanding:控件会尽可能扩展以填充可用空间。
  • MinimumExpanding:控件大小不能小于最小大小,但会尽可能扩展。

1.4 伸展值的作用

伸展值用于控制多个控件在布局中分配额外空间的比例。例如,如果两个控件的水平伸展值分别为12,则额外空间会按1:2的比例分配。

二、常用组件的使用

2.1 QSpinBox 和 QComboBox

QSpinBoxQComboBox是Qt中常用的输入组件,分别用于数值输入和下拉选择框。

示例代码
from PyQt5 import QtWidgets# 创建一个窗口
self.win = QtWidgets.QWidget()# 创建一个 QSpinBox
self.win_spin_box = QtWidgets.QSpinBox()
self.win_spin_box.setRange(0, 100)  # 设置数值范围
self.win_spin_box.setSingleStep(1)  # 设置步长# 创建一个 QComboBox
self.win_combo_box = QtWidgets.QComboBox()
self.win_combo_box.addItems(["选项1", "选项2", "选项3"])  # 添加选项

2.2 QDialog

QDialog是Qt中用于创建对话框的类,通常用于弹出提示框或输入框。

示例代码
from PyQt5.QtWidgets import QMessageBox# 弹出一个消息框
QMessageBox.information(self.win, "标题", "这是一个消息框")

2.3 QTableView

QTableView是一个功能强大的表格组件,支持View-Model分离的设计方式。通过绑定自定义的TableModel,可以实现复杂的数据展示。

示例代码
from PyQt5.QtWidgets import QTableView
from PyQt5.QtCore import QAbstractTableModel# 创建一个自定义的TableModel
class MyTableModel(QAbstractTableModel):def __init__(self, data, header):super().__init__()self._data = dataself._header = headerdef rowCount(self, parent=None):return len(self._data)def columnCount(self, parent=None):return len(self._header)def data(self, index, role):if role == QtCore.Qt.DisplayRole:return self._data[index.row()][index.column()]return Nonedef headerData(self, section, orientation, role):if role == QtCore.Qt.DisplayRole:if orientation == QtCore.Qt.Horizontal:return self._header[section]return None# 使用 QTableView 绑定数据
data = [[1, 2, 3], [4, 5, 6]]
header = ["列1", "列2", "列3"]
model = MyTableModel(data, header)
table = QTableView()
table.setModel(model)

三、QPainter 类介绍

QPainter是Qt中用于图形绘制的类,支持绘制常见的几何形状(如圆、矩形、文本等),并支持颜色、旋转、平移等操作。

3.1 QPainter 的使用

所有QWidget类都继承了paintEvent方法,绘制代码需要在paintEvent方法中完成。

示例代码
from PyQt5.QtWidgets import QWidget
from PyQt5.QtGui import QPainter, QPen
from PyQt5.QtCore import Qtclass MyWidget(QWidget):def paintEvent(self, paintEvent):painter = QPainter(self)  # 创建 QPainter 对象painter.setPen(QPen(Qt.blue, 2))  # 设置画笔颜色和宽度painter.drawRect(10, 10, 100, 100)  # 绘制矩形painter.drawEllipse(120, 10, 50, 50)  # 绘制椭圆painter.drawText(10, 150, "Hello, QPainter!")  # 绘制文本

3.2 QPainter 的功能

  • 绘制形状:矩形、椭圆、多边形等。
  • 设置颜色:通过QPenQBrush设置线条颜色和填充颜色。
  • 变换操作:支持旋转、平移、缩放等操作。
  • 状态复位:可以保存和恢复绘制状态。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词