Qt 预期字符 ')' 错误
Posted
技术标签:
【中文标题】Qt 预期字符 \')\' 错误【英文标题】:Qt Expected Character ')' ErrorQt 预期字符 ')' 错误 【发布时间】:2015-03-24 21:02:34 【问题描述】:我收到以下错误:
调试开始 QML 调试已启用。只能在保险箱中使用它 环境。 QML 调试器:等待端口 55186 上的连接... QQmlApplicationEngine 未能加载组件 qrc:/main.qml:23 预期的令牌`)'
第 23 行
QFile, file("C://new.txt");
代码
#include <QIODevice>
import QtQuick 2.4
import QtQuick.Controls 1.3
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
import QtQml 2.2
ApplicationWindow
title: qsTr("File Editor")
width: 640
height: 480
visible: true
menuBar: MenuBar
Menu
title: qsTr("&File")
MenuItem
text: qsTr("&Open")
onTriggered:
var message = ("Hello World!");
QFile, file("C://new.txt");
file.open(QIODevice::ReadWrite);
QTextStream out(&file);
out << %message%;
MenuItem
text: qsTr("E&xit")
onTriggered: Qt.quit();
MainForm
anchors.fill: parent
button1.onClicked: messageDialog.show(qsTr("Button 1 pressed"))
button2.onClicked: messageDialog.show(qsTr("Button 2 pressed"))
button3.onClicked: messageDialog.show(qsTr("Button 3 pressed"))
MessageDialog
id: messageDialog
title: qsTr("May I have your attention, please?")
function show(caption)
messageDialog.text = caption;
messageDialog.open();
【问题讨论】:
我猜'C://new.txt'
应该是"C://new.txt"
。
你为什么//?转义字符是 \\ 所以也许你指的是QFile, file("C:\\new.txt");
而不是QFile, file('C://new.txt');
?所以我说的是 \\ 和 "。更重要的是,正如@SimonWarta 所说,您不能将C++
代码与QML
混合使用...
您正在混合 QML 代码和 C++ 代码。那是行不通的。如果您需要其他帮助,请先正确格式化您粘贴的代码(在粘贴到 Stack Overflow 之前,在每行前面添加 4 个空格)。否则别人读起来太难了。
QML 中的信号处理程序只接受 javascript 代码,不接受C++ 代码。您可以为此调用 C++ 方法(SLOT
或 Q_INVOKABLE
)或 create a custom QML type。
【参考方案1】:
正如 cmets 中的 Simon Warta 和 BaCaRoZzo 所述,您不能在 QML 中使用 C++。您需要使用 Javascript 并创建自己的自定义类型来处理文件输入和输出。
请看这个answer。
【讨论】:
以上是关于Qt 预期字符 ')' 错误的主要内容,如果未能解决你的问题,请参考以下文章