Показать файл в папке в PyQt [duplicate]

Я достиг этого, выполнив следующие шаги.

Это предпосылки для того, чтобы округленный прямоугольник выглядел аккуратным

  • Радиус ребер должен быть равный (высота прямоугольника / 2). Это связано с тем, что если его любое другое значение, то место, где кривая встречает прямую линию прямоугольника, не будет

Далее следуют шаги рисования округленного прямоугольника.

  • Сначала мы рисуем 2 круга с левой и правой стороны, с радиусом = высота прямоугольника / 2
  • . Затем мы рисуем прямоугольник между этими кругами, чтобы получить желаемый округленный прямоугольник.

Я отправляю код ниже

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);
}

Теперь это приводит к действительно хорошему округленному прямоугольнику, подобному показанному ниже

1
задан YaronGh 28 July 2016 в 17:19
поделиться

1 ответ

Чтобы предотвратить выбор файлов, вы можете установить прокси-модель, которая управляет флагами для элементов в файловом представлении:

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)
2
ответ дан ekhumoro 18 August 2018 в 17:41
поделиться
  • 1
    Хорошо, большое спасибо! Я не уверен, должен ли я открыть новый вопрос для этого или нет (дайте мне знать) - но есть ли быстрая модификация, которую я мог бы сделать в моем коде выше, чтобы иметь возможность выбирать обе папки и файлы? – YaronGh 28 July 2016 в 18:59
  • 2
    @YaronGh. file_dialog.setProxyModel(None). – ekhumoro 28 July 2016 в 19:02
  • 3
    Если я это сделаю, он вернет выбранный файл + все остальные файлы в этой папке – YaronGh 28 July 2016 в 19:07
  • 4
    @YaronGh. Вам нужно будет объяснить гораздо более четко, что вы пытаетесь сделать. – ekhumoro 28 July 2016 в 19:12
  • 5
    Я пытаюсь выбрать оба файла и папки, и диалоговое окно файла возвращает пути к этим файлам и папкам. – YaronGh 28 July 2016 в 19:15
Другие вопросы по тегам:

Похожие вопросы: