trato de dibujar un rectángulo redondeado con drawRoundedRect
método directamente en un QPixmap
(motor sin hacer que implican aquí exepto pura Qt uno ...), hago doble comprobar el tamaño del rectángulo en comparación con el tamaño de mi mapa de píxeles:Qt rectángulo redondo, ¿por qué las esquinas son diferentes?
Pixmap : QSize(50, 73)
Rectangle: QRect(0,0 48x11)
ver un montón de espacio ...
EDIT: un código
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);
- I desactivada la transformación del mundo ...
- I SET SET transformación a la unidad ...
- I probado varios radio (1.0,2.0,3.0,4.0) ...
- I cambiar el ancho de la pluma, color cepillo ...
¡Pero siempre termina con un rectomgle con 4 esquinas diferentes! Al igual que:
I directamente ouptut el mapa de píxeles en un archivo para asegurarse de que no estaba raspando durante la visualización de ... de la misma forma.
¿Alguien sabe sobre el rectángulo redondo Qt con radio pequeño? Vi algo sobre esto hace mucho tiempo, pero no recuerdo cómo lidiar con eso.
Jugué con antialising de otra manera para dibujar cosas (drwa path, arc ...). ¡Antialiasing con cosas tan pequeñas lo hacen valer! Y mi mejor oportunidad fue addind ~ 0.5 en cada una de las preguntas donde el enrutamiento puede producir un comportamiento extraño ... ¡Así que voy a aceptar el método de ** jugar con números **! – vrince
Tenía el mismo problema. Usando 'QPainter p (this); p.setRenderHint (QPainter :: Antialiasing); p.setRenderHint (QPainter :: HighQualityAntialiasing); 'hizo el truco para mí. –
cambiando el ancho de la pluma hace la magia !! – Ashish