Hi, For Windows user, you can create a xxx.rc file which contains the icon file path maunlly, then assign it to the qmake's variable RC_FILE.
Or, from Qt5.0.2 on, you can simply assign the icon file path to qmake's variable RC_ICON RC_ICON = aaaaa.ico Regards, Debao On Wed, Jan 30, 2013 at 3:10 AM, Alan Alpert <4163654...@gmail.com> wrote: > On Tue, Jan 29, 2013 at 11:05 AM, Rutledge Shawn > <shawn.rutle...@digia.com> wrote: > > Mark Summerfield writes: > >> I am trying to create a "pure" QML program, so may main.cpp is simply: > >> > >> #include <QGuiApplication> > >> #include <QQmlEngine> > >> #include <QQuickView> > >> int main(int argc, char *argv[]) > >> { > >> QGuiApplication app(argc, argv); > >> QQmlEngine engine; > >> QQuickView view(&engine, 0); > >> view.setSource(QUrl("qrc:/myapp.qml")); > >> view.show(); > >> return app.exec(); > >> } > >> > >> In myapp.qml I have: > >> > >> import QtQuick 2.0 > >> import QtQuick.Window 2.0 > >> Window { > >> title: "Caption" > >> ... > >> } > >> > >> But there doesn't seem to be any API for setting the application's icon. > >> (I know I could use QApplication, but I am trying to avoid using > >> QWidget.) > >> > >> Is it possible to set an application icon, and if so, how? > > > > Currently there isn't a way to do it from QML. This is because we have > not exposed QIcon as a QtQuick type. Window icons can be different sizes, > depending on the context in which the windowing system shows them (as a > decoration on the title bar, on a task bar or dock, as "tiles" or > whatever). QIcon allows you to provide multiple image sizes, but we didn't > design the QML API for that yet. The simplest is that we could add an > image source URL to QQuickWindow, you could provide a medium-sized image > for the icon, and it can be scaled down (as small as 16 pixels sometimes); > but the result will be less optimal than if you could provide a 16-pixel > icon yourself, in addition to the larger one. We will need icons for > Actions too, which we are in the process of adding to QtQuick. So my > opinion is that we need proper icon objects in QtQuick for both use cases. > > > > A QML Window is a QQuickWindow which is a subclass of QWindow, so the > method you would want to call is QWindow::setIcon(QIcon &). Maybe you can > create a subclass of QQuickWindow in C++ which sets the icon, do > qmlRegisterType to make it available, and instantiate that instead of plain > Window? I haven't tried that myself, but it seems like it should work. > > There's an even simpler way to do it from C++ - just manage the window > there. QQuickView is a window as well, just use that as the window > (instead of having an empty window as well as the Window{}), and call > setIcon on it. That's just adding "view.setIcon(icon);" in your > existing C++ code, and using an Item{} as the root of myapp.qml > instead of Window{}. > > > Sorry it's not straightforward yet, but I think we will need to add the > QML window icon API as soon as we have the Icon API figured out in general. > > The Window{} QML API is also really new, so there's a lot more work to > be done with controlling windows from QML. Right now, it's probably > easiest to control the main window from C++. > > -- > Alan Alpert > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest >
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest