2012-03-01 45 views
7

Tôi đã viết một hàm phải vẽ một vòng tròn màu đen đầy trên đồ họa của tôi. Chức năng vẽ một vòng tròn lót màu đen nhưng không được lấp đầy? Đây là chức năng của tôi:vẽ một vòng tròn đã điền đầy đủ

void World::damage(int x, int y) 
{ 
    QPainter painter(&worldImage); 
    painter.setBrush(QBrush(Qt::black)); 
    painter.drawArc(x,y,150,50,0,16*360); 
    item = new QGraphicsPixmapItem(QPixmap::fromImage(worldImage)); 
    this->addItem(item); 

} 

loại liên quan,

Trả lời

10

drawArc() không sử dụng một màu lấp, sử dụng drawEllipse() cho một vòng tròn đầy đủ mà được lấp đầy.

+0

Xin chào, điều này có gây ra việc vẽ lại mọi lúc mà tiện ích đi vào chế độ xem hay người dùng chỉnh sửa một số phần khác của tiện ích con không? Sẽ không phải là đắt tiền? Không có cách nào để vẽ nó một lần và cho tất cả? – SexyBeast

+0

Hệ thống sơn Qt cố gắng tối ưu hóa khi các sự kiện sơn được kích hoạt để giảm sự sơn lại không cần thiết càng nhiều càng tốt và đủ trong hầu hết các trường hợp. Nếu hoạt động sơn phức tạp hoặc thường xuyên được sơn lại, các tối ưu hóa có thể được giới thiệu khi bạn đề cập đến bằng cách vẽ lên một bản đồ pixmap và lưu vào bộ nhớ đệm. –

4

drawEllipse() mình didnt giải quyết vấn đề của tôi

chỉ tôi thêm painter.setBrush(Qt::red);

trước drawEllipse()

và hoạt động hoàn hảo.

Các vấn đề liên quan