Usare le MenuBar in QML
QML consente di scrivere applicazioni Qt usando un linguaggio simile a Javascript, misto alle classi C++ del framework.
Molto interessante, soprattutto per chi conosce bene Javascript.
Oggi vediamo come usare il componente MenuBar in una applicazione Qt Quick.
Una volta creato un progetto Qt Quick Application con Qt Creator, ci ritroviamo il file main.qml con un oggetto Rectangle.
Per usare le MenuBar dobbiamo però passare a ApplicationWindow, e questo comporta qualche modifica al progetto iniziale.
Prima di tutto il main.qml diventerà così:
import QtQuick 2.0
import QtQuick.Controls 1.0ApplicationWindow {
title: "App"
visible: true
width: 600
height: 600menuBar: MenuBar {
Menu {
title: "File"
MenuItem { text: "Open..." }
MenuItem { text: "Close" }
}Menu {
title: "Edit"
MenuItem { text: "Cut" }
MenuItem { text: "Copy" }
MenuItem { text: "Paste" }
}
}}
Bene, adesso dobbiamo modificare il metodo main nel file main.cpp, che dovrà diventare così (salvate il contenuto dell'originale e mettete questo):
/*#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QtQuick2ApplicationViewer viewer;
viewer.setMainQmlFile(QStringLiteral("qml/Test/main.qml"));
viewer.showExpanded();
return app.exec();
}*/#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickWindow>int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl("qml/Test/main.qml"));
QObject *topLevel = engine.rootObjects().value(0);
QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);
window->show();
return app.exec();
}
Vi ho lasciato la parte originale commentata sopra.
A questo punto provate ad avviare l'applicazione.
Enjoy!
c++ qt qt quick qt creator rectangle menubar applicationwindow qml javascript
Commentami!