嗨。 我需要你的帮助。因此,我正在创建一个qt桌面应用程序,并且需要在te项目中从python文件调用函数方法。
所以,我的python文件:
import logging
import os
from time import gmtime, strftime
class Logger():
LOG_TO_FILE=True
@staticmethod
def currentTime():
return strftime("%Y-%m-%d %H:%M:%S", gmtime())
@staticmethod
def log(msg):
print msg
Logger.saveToFile(msg)
@staticmethod
def info(label, msg):
msg = "%s Info : [%s] -> %s" % (Logger.currentTime(), label, msg)
Logger.saveToFile(msg)
print msg
@staticmethod
def debug(label, msg):
msg = "%s Debug : [%s] -> %s" % (Logger.currentTime(), label, msg)
Logger.saveToFile(msg)
print msg
@staticmethod
def warning(label, msg):
msg = "%s Warn : [%s] -> %s" % (Logger.currentTime(), label, msg)
Logger.saveToFile(msg)
print msg
@staticmethod
def critical(label, msg):
msg = "%s Critic : [%s] -> %s" % (Logger.currentTime(), label, msg)
Logger.saveToFile(msg)
print msg
@staticmethod
def error(label, msg):
msg = "%s Error : [%s] -> %s" % (Logger.currentTime(), label, msg)
Logger.saveToFile(msg)
print msg
#log.critical(msg)
@staticmethod
def data(label, msg):
msg = "%s Data : [%s] -> \t%s" % (Logger.currentTime(), label, msg)
Logger.saveToFile(msg)
print msg
@staticmethod
def saveToFile(message):
if Logger.LOG_TO_FILE is True:
if os.path.exists('/var/log/iot-pi') is not True:
os.makedirs('/var/log/iot-pi')
try:
filePath='/var/log/iot-pi/main.log'
f = open(filePath,'a')
f.write(message + '\n')
f.close()
bytes = os.path.getsize(filePath)
if bytes >= 10000000:
os.remove(filePath)
Logger.info("SYSTEM", "Log file removed")
except Exception as inst:
print "save to file error (%s)" % inst
if __name__ == "__main__":
Logger.info("Test", "Message test")
我的主要cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[]) {
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
//call Logger.py here ?? it's possible ?
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
return app.exec(); }
那么,有一种获取功能的模式,例如C ++中来自Qt后端的警告方法吗? 我已经在项目中添加了python库。我需要“仅”从py文件获取def。我不能使用其他文件,我需要调用python文件。
我使用qt 5.11。 谢谢。