Я достиг этого, выполнив следующие шаги.
Это предпосылки для того, чтобы округленный прямоугольник выглядел аккуратным
Далее следуют шаги рисования округленного прямоугольника.
Я отправляю код ниже
private void drawRoundedRect(Canvas canvas, float left, float top, float right, float bottom) {
float radius = getHeight() / 2;
canvas.drawCircle(radius, radius, radius, mainPaint);
canvas.drawCircle(right - radius, radius, radius, mainPaint);
canvas.drawRect(left + radius, top, right - radius, bottom, mainPaint);
}
Теперь это приводит к действительно хорошему округленному прямоугольнику, подобному показанному ниже
Чтобы предотвратить выбор файлов, вы можете установить прокси-модель, которая управляет флагами для элементов в файловом представлении:
class ProxyModel(QtGui.QIdentityProxyModel):
def flags(self, index):
flags = super(ProxyModel, self).flags(index)
if not self.sourceModel().isDir(index):
flags &= ~QtCore.Qt.ItemIsSelectable
return flags
# keep a reference somewhere to prevent core-dumps on exit
self._proxy = ProxyModel(self)
file_dialog.setProxyModel(self._proxy)
file_dialog.setProxyModel(None)
. – ekhumoro 28 July 2016 в 19:02