Как выполнить файл Python (QT) в C ++? - PullRequest
0 голосов
/ 24 сентября 2019

У меня проблема при выполнении следующего файла Python в C ++ (Visual Studio 2019 - Windows 10).

Файл Python (fileDialog.py):

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QInputDialog
from PyQt5.QtWidgets import QLineEdit, QFileDialog
from PyQt5.QtGui import QIcon


class SelectFile(QMainWindow):

    def __init__(self):
        super().__init__()
        self.title = 'Select File'
        self.left = 10
        self.top = 10
        self.width = 640
        self.height = 480
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        # self.openFileNamesDialog()
        self.openFolderDialog()

    def openFileNamesDialog(self)
        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        files, _ = QFileDialog.getOpenFileNames(self,
                                                "Select Files",
                                                "",
                                                "All Files (*);;Python Files (*.py)",
                                                options=options)
        if files:
            print(files)

    def openFolderDialog(self):
        options = QFileDialog.ShowDirsOnly
        options |= QFileDialog.DontUseNativeDialog
        dir_ = QFileDialog.getExistingDirectory(None,
                                                "Select Folder",
                                                "",
                                                options=options)
        if dir_:
            # dir_ = dir_ + "/"
            print(dir_)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setApplicationName("Select File")
    ex = SelectFile()
    app.quit()

Код C ++:

#include <Python.h>

int main()
{
    Py_Initialize();
    FILE* fd = fopen("fileDialog.py", "r");
    PyRun_SimpleFileEx(fd, "fileDialog.py", 1);
    Py_Finalize();

    return EXIT_SUCCESS;
}

Ошибка, которую я получаю:

Traceback (самый последний вызовпоследнее):

Файл "fileDialog.py", строка 2, в модуле

из PyQt5.QtWidgets импортирует QApplication, QMainWindow, QInputDialog

ModuleNotFoundError: Модуль не указан'PyQt5.QtWidgets'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...