Как узнать, что pyqtSignal передаст в pyqtSlot?Python

Программы на Python
Anonymous
Как узнать, что pyqtSignal передаст в pyqtSlot?

Сообщение Anonymous »

Я просматриваю страницу документации Qt, посвященную архитектуре Mode-View, и, пытаясь воспроизвести использование индексов модели в PyQt5, я наткнулся на работающий скрипт, который я не до конца понимаю. Вот код:

Код: Выделить всё

def main():
app = QApplication(sys.argv)

path = '/path/to/dir/'

model = QFileSystemModel()
model.setRootPath(path)

window = QWidget()
layout = QVBoxLayout(window)
label = QLabel("Files and Directories:\n")
layout.addWidget(label)

def link_data(directory):
parent_index = model.index(directory)
num_rows = model.rowCount(parent_index)

names = []
for row in range(num_rows):
index = model.index(row, 0, parent_index)
name = model.data(index)
names.append(name)

label.setText("Files and Directories:\n" + "\n".join(names))

# Connect the directoryLoaded signal to the link_data slot
model.directoryLoaded.connect(link_data)

window.setWindowTitle("File System Model Data Retrieval")
window.show()

sys.exit(app.exec_())

if __name__ == "__main__":
main()
Мне кажется, что model.directoryLoaded.connect(link_data) будет предусматривать, что при выдаче сигнала DirectoryLoaded корневой путь модели будет передается в слот link_data.
В документации C++ говорится только, что void QFileSystemModel::directoryLoaded(const QString &path) генерируется, когда поток сбора завершил работу загрузить путь.
Я хочу понять, как заполняется аргумент каталога из link_data(directory) и как я могу это понять из документы.

Подробнее здесь: https://stackoverflow.com/questions/786 ... a-pyqtslot

Вернуться в «Python»