Qt5在Python脚本中调用函数

时间:2017-07-21 21:35:56

标签: python qt qt5

我有一个带有按钮和文本字段的简单Qt5项目,我确实在项目中创建了一个py文件来检查如何从Qt中调用python文件中的函数。

虽然现在我被卡住了;我有我的testcpp.h和testcpp.cpp,我在其中定义了一个字符串和一个打印该字符串的函数;虽然我不知道如何现在调用python文件中的函数,它只是打印一个字符串。

我想调用Qt函数,让它调用python文件中的函数;你是怎么做到的?

testcpp.h文件:

#ifndef TESTCPP_H
#define TESTCPP_H

#include <QObject>
#include <QString>

class testcpp : public QObject
{
    Q_OBJECT
public:
    explicit testcpp(QObject *parent = nullptr);

    QString getTest_to_print() const;
    void setTest_to_print(const QString &value);

signals:

public slots:

private:
    QString test_to_print;

};

#endif // TESTCPP_H

testcpp.cpp文件:

#include "testcpp.h"

testcpp::testcpp(QObject *parent) : QObject(parent)
{

}

QString testcpp::getTest_to_print() const
{
    return test_to_print;
}

void testcpp::setTest_to_print(const QString &value)
{
    test_to_print = value;
}

void testcpp::PrintViaPython(QString &test_to_print)
{



}

Python文件:

# -*- coding: utf-8 -*-

try:
    from PySide import QtWidgets
except:
    from PyQt5 import QtWidgets


class test_python:
    def __init__(self):


    def testme(self, string_to_print):
        print(string_to_print)

1 个答案:

答案 0 :(得分:0)

任何IDE都可以创建任何类型的文件,这并不意味着它可以执行,这就是QtCreator的情况。

回答问题的背景我建议使用PythonQt库,你可以从头开始通过SIP和python.h库来实现,但是如果有我建议的库则没有必要。