В работнике. cpp вы не «внутри» области видимости класса. Таким образом, вам нужно полностью определить тип:
Worker::Worker(QList<Worker::pnp_com_info> pnp_data) {
И затем в MainWindow
вам, конечно, нужно использовать ту же структуру Worker::pnp_com_info
и не определять новый тип структуры.
Возможно, вы захотите поместить определение структуры где-то еще, кроме Worker
. Но где, советовать невозможно, основываясь только на коде, который вы показываете; возможно, для этого лучше всего иметь вложенную структуру внутри Worker
.
Лично мне нравится использовать Qt Creator (или любую IDE, которую я могу использовать для любого языка программирования), чтобы выполнить рефакторинг сгенерируйте определение метода в. cpp файле. Напишите объявление внутри th-класса в файле .h как обычно, затем щелкните его правой кнопкой мыши, чтобы получить контекстное меню, выберите рефакторинг и выберите нужный вариант генерации. Предотвращает подобные ошибки и может значительно сэкономить, если биться головой, особенно когда кодируешь, когда немного устал.