forked from M-Labs/artiq
gui/tools: add getOpenFileName
This commit is contained in:
parent
47c7b04ac6
commit
5332c198c2
|
@ -1,6 +1,7 @@
|
||||||
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from PyQt5 import QtCore, QtWidgets, QtGui
|
from PyQt5 import QtCore, QtWidgets
|
||||||
|
|
||||||
|
|
||||||
def log_level_to_name(level):
|
def log_level_to_name(level):
|
||||||
|
@ -45,3 +46,18 @@ class LayoutWidget(QtWidgets.QWidget):
|
||||||
|
|
||||||
def addWidget(self, item, row=0, col=0, rowspan=1, colspan=1):
|
def addWidget(self, item, row=0, col=0, rowspan=1, colspan=1):
|
||||||
self.layout.addWidget(item, row, col, rowspan, colspan)
|
self.layout.addWidget(item, row, col, rowspan, colspan)
|
||||||
|
|
||||||
|
|
||||||
|
async def getOpenFileName(parent, caption, dir, filter):
|
||||||
|
"""like QtWidgets.QFileDialog.getOpenFileName(), but a coroutine"""
|
||||||
|
dialog = QtWidgets.QFileDialog(parent, caption, dir, filter)
|
||||||
|
dialog.setFileMode(dialog.ExistingFile)
|
||||||
|
dialog.setAcceptMode(dialog.AcceptOpen)
|
||||||
|
fut = asyncio.Future()
|
||||||
|
|
||||||
|
def on_accept():
|
||||||
|
fut.set_result(dialog.selectedFiles()[0])
|
||||||
|
dialog.accepted.connect(on_accept)
|
||||||
|
dialog.rejected.connect(fut.cancel)
|
||||||
|
dialog.open()
|
||||||
|
return await fut
|
||||||
|
|
Loading…
Reference in New Issue