我正在嘗試將圓角添加到QDialog
。我正在定義自己的paintEvent
方法來創建圓角。它正在工作,但它爲所有事物添加了圓潤的邊框。即使光標正在獲得邊框。有什麼辦法可以禁用這種行爲嗎?如何停止繪製子部件的paintEvent?
示例代碼:
from PySide import QtCore, QtGui
class RenameDialog(QtGui.QDialog):
def __init__(self, parent=None, **kwargs):
super(RenameDialog, self).__init__(
parent=parent, f=QtCore.Qt.CustomizeWindowHint)
self.fieldA = QtGui.QLineEdit(self)
self.fieldB = QtGui.QLineEdit(self)
self.setLayout(QtGui.QHBoxLayout())
self.layout().addWidget(self.fieldA)
self.layout().addWidget(self.fieldB)
# Set background transparent. Only items drawn in paintEvent
# will be visible.
palette = QtGui.QPalette()
palette.setColor(QtGui.QPalette.Base, QtCore.Qt.transparent)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)
self.setPalette(palette)
def paintEvent(self, event):
painter = QtGui.QPainter(self)
fillColor = QtGui.QColor(75, 75, 75, 255)
lineColor = QtCore.Qt.gray
painter.setRenderHint(QtGui.QPainter.Antialiasing)
painter.setPen(QtGui.QPen(QtGui.QBrush(lineColor), 2.0))
painter.setBrush(QtGui.QBrush(fillColor))
painter.drawRoundedRect(event.rect(), 15, 15)
我試圖用paintEvent
,因爲要做到這一點:
- QDialog的樣式表不能使用
border-radius
。彎曲的邊框顯示出來,但角落仍然可見。 QDialogs.setMask()
的作品,但沒有辦法(我知道的)反對別名的面具。
這裏是什麼樣子:
有截圖嗎? 「爲所有事物添加圓角邊框」聽起來很奇怪。 –
這很奇怪。我添加了一個截圖。在我關注該字段之前,第二個字段上的邊框不會出現。 – Jordan