Qt预期角色')'错误

时间:2015-03-24 21:02:34

标签: qt templates qml qt-creator qtquick2

我收到以下错误:

  

调试开始启用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();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

正如评论中Simon WartaBaCaRoZzo所述,您不能在QML中使用C ++。您需要使用Javascript并创建自己的自定义类型来处理文件输入和输出。

请参阅此answer