PyQt5 - как вывести Qfiledialog на передний план?
Мой код использует PyQt, чтобы открыть диалог выбора папки. Как только папка выбрана, она свернута. Я бы хотел, чтобы диалог всплывал перед любыми другими окнами. Я еще не смог найти решение. Какие-либо предложения?
from sys import executable, argv
from subprocess import check_output
from PyQt5.QtWidgets import QFileDialog, QApplication
def gui_fname(directory=''):
file = check_output([executable, __file__, directory])
return file.strip()
if __name__ == "__main__":
directory = argv[1]
app = QApplication([directory])
folderpath = QFileDialog.getExistingDirectory(None, "Select folder")
1 ответ
Решение
Я думаю, что ваша проблема исходит из "Нет" в следующей функции.folderpath = QFileDialog.getExistingDirectory(None, "Select folder")
Модальность диалога не может быть установлена, потому что у него нет родителя. Обычно вместо None
у нас есть self
,
РЕДАКТИРОВАТЬ: Конечно, приложение не наследует от QWidget. Извини за это.
используйте это вместо Я проверил это на работе:
import sys
from subprocess import check_output
from PyQt5.QtWidgets import QFileDialog, QApplication, QWidget
def gui_fname(directory=''):
file = check_output([executable, __file__, directory])
return file.strip()
if __name__ == "__main__":
app = QApplication(sys.argv)
wid = QWidget()
folderpath = QFileDialog.getExistingDirectory(wid, "Select folder")
sys.exit(app.exec_())