tôi cố gắng để vẽ một hình chữ nhật tròn với drawRoundedRect
phương pháp trực tiếp trong một QPixmap
(không làm cho động cơ liên quan đến đây exept tinh khiết Qt một ...), tôi kiểm tra kích thước của hình chữ nhật so với kích thước của pixmap của tôi tăng gấp đôi:Hình chữ nhật tròn Qt, tại sao các góc khác nhau?
Pixmap : QSize(50, 73)
Rectangle: QRect(0,0 48x11)
Xem nhiều không gian ...
EDIT: một số mã
pixmap = QPixmap(50,73); //example size that match my case
QRectF rect(0,0,48,11);
QPainter painter(&pixmap);
painter.setRenderHint(QPainter::TextAntialiasing);
painter.setWorldMatrixEnabled(false);
painter.setPen(QPen()); //no pen
painter.setBrush(QBrush(color));
painter.drawRoundedRect(rect, 2.0, 2.0);
- tôi vô hiệu hóa chuyển đổi thế giới ...
- tôi thiết lập thiết lập chuyển đổi để thống nhất ...
- Tôi đã thử nhiều bán kính (1.0,2.0,3.0,4.0) ...
- tôi thay đổi độ rộng bút, bàn chải màu ...
Nhưng nó luôn luôn kết thúc với một rectamgle với 4 góc khác nhau! Như thế:
tôi trực tiếp ouptut các pixmap vào một tập tin để chắc chắn tôi đã không cạo nó trong màn hình hiển thị ... cùng hình dạng.
Bất kỳ ai biết về hình chữ nhật tròn Qt có bán kính nhỏ? Tôi đã nhìn thấy mọi thứ về nó một thời gian dài trước đây nhưng tôi không nhớ làm thế nào để đối phó với nó!
Tôi chơi với antialising cách khác để vẽ công cụ (drwa đường dẫn, vòng cung ...). Antialiasing với những thứ nhỏ như vậy làm cho nó có giá trị! Và cú đánh tốt nhất của tôi là addind ~ 0.5 mỗi khi quessing nơi rouding có thể tạo ra hành vi kỳ lạ ... Vì vậy, tôi sẽ chấp nhận ** play với số ** phương pháp! – vrince
Đã xảy ra sự cố tương tự. Sử dụng 'QPainter p (this); p.setRenderHint (QPainter :: Antialiasing); p.setRenderHint (QPainter :: HighQualityAntialiasing); 'đã thực hiện thủ thuật cho tôi. –
thay đổi chiều rộng bút làm phép thuật !! – Ashish