C++/Qt/QX11EmbedWidget — различия между версиями
Admin (обсуждение | вклад) м (1 версия: Импорт контента...) |
|
(нет различий)
|
Текущая версия на 13:24, 25 мая 2010
Using QX11EmbedWidget
<source lang="cpp"> /****************************************************************************
- Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
- All rights reserved.
- Contact: Nokia Corporation (qt-info@nokia.com)
- This file is part of the documentation of the Qt Toolkit.
- $QT_BEGIN_LICENSE:LGPL$
- Commercial Usage
- Licensees holding valid Qt Commercial licenses may use this file in
- accordance with the Qt Commercial License Agreement provided with the
- Software or, alternatively, in accordance with the terms contained in
- a written agreement between you and Nokia.
- GNU Lesser General Public License Usage
- Alternatively, this file may be used under the terms of the GNU Lesser
- General Public License version 2.1 as published by the Free Software
- Foundation and appearing in the file LICENSE.LGPL included in the
- packaging of this file. Please review the following information to
- ensure the GNU Lesser General Public License version 2.1 requirements
- will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- In addition, as a special exception, Nokia gives you certain additional
- rights. These rights are described in the Nokia Qt LGPL Exception
- version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- GNU General Public License Usage
- Alternatively, this file may be used under the terms of the GNU
- General Public License version 3.0 as published by the Free Software
- Foundation and appearing in the file LICENSE.GPL included in the
- packaging of this file. Please review the following information to
- ensure the GNU General Public License version 3.0 requirements will be
- met: http://www.gnu.org/copyleft/gpl.html.
- If you have questions regarding the use of this file, please contact
- Nokia at qt-info@nokia.com.
- $QT_END_LICENSE$
-
- /
- ifndef EMBEDWIDGET_H
- define EMBEDWIDGET_H
- include <QRadialGradient>
- include <QSize>
- include <QX11EmbedWidget>
class QPaintEvent; class EmbedWidget : public QX11EmbedWidget {
Q_OBJECT
public:
EmbedWidget(QWidget *parent = 0); QSize sizeHint() const;
protected:
void paintEvent(QPaintEvent *event);
private:
QRadialGradient gradient;
};
- endif
- include <QtGui>
- include "embedwidget.h"
EmbedWidget::EmbedWidget(QWidget *parent)
: QX11EmbedWidget(parent)
{
gradient = QRadialGradient(100, 100, 90, 60, 60); gradient.setColorAt(0.0, Qt::white); gradient.setColorAt(0.9, QColor(192, 192, 255)); gradient.setColorAt(1.0, QColor(0, 32, 64));
} QSize EmbedWidget::sizeHint() const {
return QSize(200, 200);
} void EmbedWidget::paintEvent(QPaintEvent *event) {
QPainter painter; painter.begin(this); painter.setRenderHint(QPainter::Antialiasing); painter.fillRect(event->rect(), QBrush(gradient)); painter.end();
}
- include <QApplication>
- include "embedwidget.h"
int main(int argc, char *argv[]) {
QApplication app(argc, argv); if (app.arguments().count() != 2) { qFatal("Error - expected window id as argument"); return 1; } QString windowId(app.arguments()[1]); EmbedWidget window; window.embedInto(windowId.toULong()); window.show(); return app.exec();
}
</source>