Форум сайта python.su
Здравствуйте. Что-то мне не удалось найти такую опцию.
Еще один вопрос: как сделать, чтобы диалог не закрывался после выбора файла?
Я использую свой класс на базе QDialog, в котором в QSplitter вставлены два виджета: один реализован в классе на базе QFileDialog с опцией DontUseNativeDialog, а в другой вставлен QWidget для предварительного просмотра выбранного файла (графический файл собственного формата). При выборе файла диалог автоматически закрывается, т.е. нет возможности сделать предварительный просмотр. По кнопке “открыть” (стандартная кнопка в QFileDialog) срабатывает метод accept, и диалог закрывается.
Спасибо.
Офлайн
> Я использую свой класс на базе QDialog, в котором в QSplitter вставлены два виджета: один реализован в классе на базе QFileDialog
По теме: https://pythonspot.com/en/pyqt5-directory-view/
Отредактировано Rodegast (Авг. 9, 2017 11:44:25)
Офлайн
Спасибо. Значит придется все же заморочиться с QTreeView и QFileSystemModel. А я так надеялась, что можно QFileDialog-ом обойтись, т.к. там уже всё есть готовое.
Офлайн
А вот интересно: в OC Windows диалог по сигналу fileSelected не закрывается, а в линуксе CentOS-7 закрывается. Может это происки KDE?
Офлайн
Да чего там заморачиваться?
#!/usr/bin/python import sys from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QMainWindow): def __init__(self, parent = None): QtGui.QMainWindow.__init__(self, parent) centralWidget = QtGui.QTreeView() centralWidget.setAnimated(False) centralWidget.setIndentation(20) centralWidget.setSortingEnabled(True) self.setCentralWidget(centralWidget) self.model = QtGui.QFileSystemModel() self.model.setRootPath('') centralWidget.setModel(self.model) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_())
Офлайн
Это-то все понятно, но в QFileDialog реализована куча всяких наворотов типа фильтры, история, детализация и т.д., а тут придется все самой делать. Кстати, если по списку файлов клавишами двигаться, то предварительный просмотр работает и диалог не закрывается.
Офлайн
> в QFileDialog реализована куча всяких наворотов типа фильтры, история, детализация и т.д.,
Даже не думай об этом!
Офлайн