温州人才网站开发湖南省建设工程信息网站
控件是PySide设计好的能承载用户输入、输出的小窗体,将多个控件有机整合,能形成用户所需要的界面。而每一个控件,都有属于自己的属性、方法、信号、槽函数和事件(event),且控件与控件之间又有继承关系。
GUI编程常用类
PySide GUI变成经常用到坐标点(位置)、尺寸、矩形框、页边距、字体、颜色、调色板、图像、图标、光标和地址(QUrl)等类。
坐标点类之——QPoint
QPoint通过整数精度,在平面上定义一个点。PySide的点和Windows窗体类似,以左上方为坐标原点,从左至右是x轴方向,自上往下是y轴方向。
QPoint官方文档
概述
方法
def __init__()
def __reduce__()
def __repr__()
def isNull()
def manhattanLength()
def __ne__()
def __mul__()
def __imul__()
def __add__()
def __iadd__()
def __sub__()
def __isub__()
def __div__()
def operator/=()
def __eq__()
def setX()
def setY()
def toPointF()
def toTuple()
def transposed()
def x()
def y()
静态方法
def dotProduct()
详细描述及应用举例
在Python脚本中,通过如下语句导入QPoint:
from PySide6.QtCore import QPoint
- 构造方法
__init__(xpos, ypos)和__init__() 
构造方法__init__(xpos, ypos)根据给定的x和y坐标构造一个点,__init__()则构造一个坐标为(0, 0)“空点”,即坐标原点。
    # 带参数构造一个点point_param = QPoint(5, 6)# 默认构造方法,构造一个远点origin = QPoint()
 
输出这两个点,分别是:
PySide6.QtCore.QPoint(5, 6)
PySide6.QtCore.QPoint(0, 0)
__reduce__()
Python的特殊方法,将Python对象序列化(pickle)时,会调用这个方法,如:
    p = QPoint(6, 8)print(pickle.dumps(p))
 
__repr__()
用于定义对象的字符串表示形式。当你直接打印一个类的实例化对象时,Python 会自动调用该方法,以输出对象的自我描述信息。如这里的QPoint:
    p = QPoint(10, 20)print(repr(p))  # 等同于print(p)或print(p.__repr__())
 
- 空值判断
isNull() 
当x和y坐标均为0时,返回True,否则返回False,如:
    p = QPoint()print(p.isNull())   # Truenotnull_pt = QPoint(1, 2)print(notnull_pt.isNull())  # False    
 
- 曼哈顿长度
manhattanLength() 
曼哈顿长度,或者叫曼哈顿距离,x和y绝对值之和。
    p = QPoint(12, 23)manhattan_dist = p.manhattanLength()print(manhattan_dist)    # 35
 
- 不等
__ne__(p2),!= 
判断两个点是否相等,p2是一个QPoint对象。
    p1 = QPoint(2, 5)p2 = QPoint(3, 3)p3 = QPoint(2, 5)print(p1.__ne__(p2))print(p1 != p2)print(p1 != p3)
 
- 乘法运算——返回一个
QPoint副本的乘法(*):__mul__(factor) 
QPoint乘法运算,即*,参数可以可以是整型int或浮点型float因子factor。
    p = QPoint(10, 20)r = p * 2print(r)s = p * 1.5print(s)
 
- 乘等
*=(__imul__(factor)) 
QPoint乘等运算,即*=,参数可以是整型int或浮点型float因子factor。
    p = QPoint(5, 8)p *= 2print(p)p *= 1.8print(p)
 
- 加法运算
+(__add__(p2)) 
QPoint加法运算。
    p = QPoint(1, 2)q = QPoint(2, 3)r = p + qprint(r)
 
- 加等
+=(__iadd__(p)) 
QPoint自增运算,举例如下:
    p = QPoint(1, 2)q = QPoint(2, 3)p += qprint(p)  
 
- 取负和减法运算
-(__sub__(p)) 
取负或减法运算:
    p = QPoint(1, 1)q = QPoint(2, 0)r = p - qprint(r)   
 
- 减等
-=(__isub__(p)) 
减等运算:
    p = QPoint(1, 1)q = QPoint(2, 0)  q -= pprint(q)  # (1, -1)
 
- 除法
/(__div__(divisor))以及/= 
执行除法运算:
    p = QPoint(10, 20)q = p / 2.0print(q)    # (5, 10)q /= 2.5print(q)    # (2, 4)
 
- 判断两个点是否相等
==(__eq__(p2)) 
    p = QPoint()q = QPoint()print(p == q)   # True
 
- 设置
x,y值,setX()和setY() 
    p = QPoint(2, 3)p.setX(3)print(p)    # (3, 3)p.setY(6)print(p)    # (3, 6)
 
- 转换为
QPointF类型toPointF() 
    p = QPoint(2, 8)print(p.toPointF()) # (2.0, 8.0)
 
- 转换为元组
toTuple() 
    p = QPoint(3, 8)print(p.toTuple())  # (3, 8)
 
- 转置
transposed() 
QPoint对象的x和y坐标对调。
    p = QPoint(3, 5)print(p.transposed())   # (5, 3)
 
- 获取
x,y数值x(),y() 
    p = QPoint(7, 8)print(p.x())    # 7print(p.y())    # 8
