ここに2つの黒塗りがあります。 の絵は、QPainter
(上書き::paintEvent(...)
)を使って行った。右側のウィジェットはQStyleSheet
を使用して「ペイント」されました。Qt QPainter対QStyleSheetsを使用したアンチエイリアス
この作品はPyQt4(Python: 2.7.11+/Qt: 4.8.7/PyQt4: 4.11.4
)で行われました。しかし、私はPyQt5とC++ Qt4/Qt5を使って同じ結果を達成しました。
I左QWidget
をペイントするために使用されるコードは、2つの間に差がある理由右ウィジェットを使用
def paintEvent(self, pEvent) :
painter = QPainter(self)
painter.setRenderHints(QPainter.HighQualityAntialiasing)
painter.setPen(Qt.black)
painter.setBrush(Qt.black)
painter.drawRoundedRect(self.rect(), 10.0, 10.0)
painter.end()
pEvent.accept()
スタイルシートは、特に丸み部が描か
setStyleSheet("border-radius: 10px; border: 1px solid black; background: black;")
ありますQStyleSheet
QPainter.HighQualityAntialiasing
レンダリングヒントを使用しても、QPainter
よりもはるかに滑らかですか? QPainter.Antialiasing
またはQPainter.TextAntialiasing
を使用しても状況は改善されません。
いいえ。私はデフォルトの幅が1だと思う。幅0と2を試しました。絶対に変更はありません。 – Marcus
実際に、あなたが提案しているこのコードでも同じ結果が得られます。ここに実装のスクリーンショットがあります:http://i.imgur.com/ylK0YkH.jpg – Marcus