qt 계승 QGraphicsItem
1)virtual QRectF boundingRect() const
이 함수는 한 엔티티의 경계를 하나의 직사각형 영역으로 정의하고 엔티티의 그리기 범위도 이 직사각형 영역 안으로 제한합니다. 또한 QGraphicsView도 이 영역 범위를 이용하여 엔티티를 다시 그려야 하는지 여부를 결정합니다.엔티티의 형태는 사각형, 원형, 다각형 등과 같은 임의의 형태일 수 있지만 경계 영역은 항상 사각형이므로 엔티티의 다양한 변환에 따라 변경되지 않습니다.주의해야 할 것은 통상적으로 경계를 그릴 때 반 개의 붓의 넓이를 포함해야 한다는 것이다.다음과 같은 API 예:
QRectF CircleItem::boundingRect() const
{
qreal penWidth = 1;
return QRectF(-radius - penWidth / 2, -radius - penWidth / 2,
diameter + penWidth, diameter + penWidth);
}
2)virtual void paint(QPainter *painter,const QStyleOptionGraphicsItem *option,QWidget *widget=0)
이 함수는 로컬 좌표에서 일반적으로 특정 엔티티 드로잉을 결정합니다.매개 변수painter는 구체적인 그림을 그립니다. 매개 변수 옵션은 일부 도원 스타일을 정의합니다. 예를 들어 선택할 때 점선 바깥쪽 경계선을 표시해야 하는지 여부 등 매개 변수widget은 기본적으로 0, 즉painter가 그리는 위치 (어느 widget에 그리는지) 입니다.다음과 같은 API 예:
void RoundRectItem::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget)
{
painter->drawRoundedRect(-10, -10, 20, 20, 5, 5);
}
3)virtual QPainterPath shape() const
QPainterPath 형식으로 도원 모양, 사용자 충돌 검측 등의 조작을 되돌려줍니다.다음 API 예
QPainterPath RoundItem::shape() const
{
QPainterPath path;
path.addEllipse(boundingRect());
return path;
}
4)virtual int type() const
QGraphicsItem 하위 클래스 형식 표지, 모든 표준graphicsitem 클래스는 유일한 int 값에 연결되어 있으며, qgraphicsitemcast () 함수가 형식 변환을 진행할 때, 각 피드 형식을 구분할 수 있습니다.이 함수를 다시 쓰고 Type 열거 유형을 설명하고 UserType보다 큰 값을 반환합니다(
65536)의 정수 값입니다.다음과 같은 API 예:
class CustomItem : public QGraphicsItem
{
...
enum { Type = UserType + 1 };
int type() const
{
// Enable the use of qgraphicsitem_cast with this item.
return Type;
}
...
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.