在QT应用程序中创建并执行函数
Create and execute a function in a Qt application?
我正在尝试开发一种允许用户定义变量并使用条件迭代的表单。然后,该表格将将文本传递给应用程序,并将其翻译成并成为编码的一部分。这就像一个模板,允许用户编写相对复杂的功能。它不仅仅是计算器,因为它允许在结构内进行一些编程。我正在使用QT。
我想知道这是否可行。如果是这样,我应该使用哪种类型的形式和逻辑。
可以做到这一点,但是复杂性取决于您的目标。
对于qml,这将非常容易,因为它是一种解释的语言,不需要编译,因此您可以在文本字段中编写一些代码并执行。
对于C ,它并不容易,它是一种编译语言,您将不得不将编译器与应用程序捆绑在一起,将代码编译到共享库中,加载它,获取指向函数并运行它。
在这两种情况下,您都需要具有数据输入格式的定义接口,并链接到已经存在的程序对象。根据您的问题的措辞,您的技能可能还不到完成任务。
这是一个简单的示例,如何在qml中进行操作:
import QtQuick 2.7
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
Window {
id: main
visible: true
width: 500
height: 300
property int appData : 0
Column {
spacing: 5
Text {
text: "addData is " + appData
}
TextInput {
id: code
width: 500
height: 200
Rectangle {
anchors.fill: parent
border.color: "black"
border.width: 1
z: -1
}
}
Button {
text: "execute"
onClicked: {
var obj = Qt.createQmlObject('import QtQuick 2.0; QtObject { function foo(app) { ' + code.text + ' } }', main)
if (obj) {
obj.foo(main)
obj.destroy()
}
}
}
}
}
然后,您可以尝试执行不同的语句,只要它们有效,例如:
app.appData = 5;
app.appData--;
console.log(app.appData);
app.width = 300;
相关文章:
- 执行函数时导致崩溃的变量
- 在多个时间戳处执行函数
- 程序不会执行函数 c++
- 仅在函数模板中为那些定义了函数的类型执行函数
- 如何在 c++ 的类声明中执行函数?
- 从 std::vector 迭代器中执行函数指针
- 异步 60 秒延迟后C++执行函数?
- 如果发生错误,则返回错误值,否则,继续执行函数
- 执行函数两次
- C++11:如何在 n 秒后在主线程中执行函数
- C++执行函数和 lambda 内部
- 从主线程C 11执行函数调用的线程
- 现代C++执行函数返回指针的方法
- 为什么Win API线程执行函数,而标准线程则没有
- varargs宏以执行函数调用或将其转换为字符串
- 单步执行函数,但不进入VS2017的参数评估
- 加载 Lua 文件并使用变量而不执行函数
- 尽可能在编译时执行函数契约
- 在QT应用程序中创建并执行函数
- 如何使用boostsio_service.post()执行函数并使用数组或指针作为参数