diff options
Diffstat (limited to 'examples/widgets/widgets/tooltips')
-rw-r--r-- | examples/widgets/widgets/tooltips/CMakeLists.txt | 49 | ||||
-rw-r--r-- | examples/widgets/widgets/tooltips/images/circle.png | bin | 165 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/widgets/tooltips/images/square.png | bin | 94 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/widgets/tooltips/images/triangle.png | bin | 170 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/widgets/tooltips/main.cpp | 16 | ||||
-rw-r--r-- | examples/widgets/widgets/tooltips/shapeitem.cpp | 60 | ||||
-rw-r--r-- | examples/widgets/widgets/tooltips/shapeitem.h | 33 | ||||
-rw-r--r-- | examples/widgets/widgets/tooltips/sortingbox.cpp | 269 | ||||
-rw-r--r-- | examples/widgets/widgets/tooltips/sortingbox.h | 69 | ||||
-rw-r--r-- | examples/widgets/widgets/tooltips/tooltips.pro | 12 | ||||
-rw-r--r-- | examples/widgets/widgets/tooltips/tooltips.qrc | 7 |
11 files changed, 0 insertions, 515 deletions
diff --git a/examples/widgets/widgets/tooltips/CMakeLists.txt b/examples/widgets/widgets/tooltips/CMakeLists.txt deleted file mode 100644 index e0bd7e71fc..0000000000 --- a/examples/widgets/widgets/tooltips/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -cmake_minimum_required(VERSION 3.16) -project(tooltips LANGUAGES CXX) - -set(CMAKE_AUTOMOC ON) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/widgets/tooltips") - -find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) - -qt_add_executable(tooltips - main.cpp - shapeitem.cpp shapeitem.h - sortingbox.cpp sortingbox.h -) - -set_target_properties(tooltips PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) - -target_link_libraries(tooltips PUBLIC - Qt::Core - Qt::Gui - Qt::Widgets -) - -# Resources: -set(tooltips_resource_files - "images/circle.png" - "images/square.png" - "images/triangle.png" -) - -qt_add_resources(tooltips "tooltips" - PREFIX - "/" - FILES - ${tooltips_resource_files} -) - -install(TARGETS tooltips - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/widgets/widgets/tooltips/images/circle.png b/examples/widgets/widgets/tooltips/images/circle.png Binary files differdeleted file mode 100644 index dc392cb3f7..0000000000 --- a/examples/widgets/widgets/tooltips/images/circle.png +++ /dev/null diff --git a/examples/widgets/widgets/tooltips/images/square.png b/examples/widgets/widgets/tooltips/images/square.png Binary files differdeleted file mode 100644 index c0fd2d540a..0000000000 --- a/examples/widgets/widgets/tooltips/images/square.png +++ /dev/null diff --git a/examples/widgets/widgets/tooltips/images/triangle.png b/examples/widgets/widgets/tooltips/images/triangle.png Binary files differdeleted file mode 100644 index 2ee15f8f1f..0000000000 --- a/examples/widgets/widgets/tooltips/images/triangle.png +++ /dev/null diff --git a/examples/widgets/widgets/tooltips/main.cpp b/examples/widgets/widgets/tooltips/main.cpp deleted file mode 100644 index 677d9ecd15..0000000000 --- a/examples/widgets/widgets/tooltips/main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include <QApplication> - -#include "sortingbox.h" - -int main(int argc, char *argv[]) -{ - Q_INIT_RESOURCE(tooltips); - - QApplication app(argc, argv); - SortingBox sortingBox; - sortingBox.show(); - return app.exec(); -} diff --git a/examples/widgets/widgets/tooltips/shapeitem.cpp b/examples/widgets/widgets/tooltips/shapeitem.cpp deleted file mode 100644 index c66c7ab958..0000000000 --- a/examples/widgets/widgets/tooltips/shapeitem.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include "shapeitem.h" - -//! [0] -QPainterPath ShapeItem::path() const -{ - return myPath; -} -//! [0] - -//! [1] -QPoint ShapeItem::position() const -{ - return myPosition; -} -//! [1] - -//! [2] -QColor ShapeItem::color() const -{ - return myColor; -} -//! [2] - -//! [3] -QString ShapeItem::toolTip() const -{ - return myToolTip; -} -//! [3] - -//! [4] -void ShapeItem::setPath(const QPainterPath &path) -{ - myPath = path; -} -//! [4] - -//! [5] -void ShapeItem::setToolTip(const QString &toolTip) -{ - myToolTip = toolTip; -} -//! [5] - -//! [6] -void ShapeItem::setPosition(const QPoint &position) -{ - myPosition = position; -} -//! [6] - -//! [7] -void ShapeItem::setColor(const QColor &color) -{ - myColor = color; -} -//! [7] diff --git a/examples/widgets/widgets/tooltips/shapeitem.h b/examples/widgets/widgets/tooltips/shapeitem.h deleted file mode 100644 index 6c0643fa89..0000000000 --- a/examples/widgets/widgets/tooltips/shapeitem.h +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#ifndef SHAPEITEM_H -#define SHAPEITEM_H - -#include <QColor> -#include <QPainterPath> -#include <QPoint> - -//! [0] -class ShapeItem -{ -public: - void setPath(const QPainterPath &path); - void setToolTip(const QString &toolTip); - void setPosition(const QPoint &position); - void setColor(const QColor &color); - - QPainterPath path() const; - QPoint position() const; - QColor color() const; - QString toolTip() const; - -private: - QPainterPath myPath; - QPoint myPosition; - QColor myColor; - QString myToolTip; -}; -//! [0] - -#endif diff --git a/examples/widgets/widgets/tooltips/sortingbox.cpp b/examples/widgets/widgets/tooltips/sortingbox.cpp deleted file mode 100644 index 2b9127f5bd..0000000000 --- a/examples/widgets/widgets/tooltips/sortingbox.cpp +++ /dev/null @@ -1,269 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include "sortingbox.h" - -#include <QMouseEvent> -#include <QIcon> -#include <QPainter> -#include <QRandomGenerator> -#include <QStyle> -#include <QToolButton> -#include <QToolTip> - -//! [0] -SortingBox::SortingBox(QWidget *parent) - : QWidget(parent) -{ -//! [0] //! [1] - setMouseTracking(true); -//! [1] //! [2] - setBackgroundRole(QPalette::Base); -//! [2] - - itemInMotion = nullptr; - -//! [3] - newCircleButton = createToolButton(tr("New Circle"), - QIcon(":/images/circle.png"), - SLOT(createNewCircle())); - - newSquareButton = createToolButton(tr("New Square"), - QIcon(":/images/square.png"), - SLOT(createNewSquare())); - - newTriangleButton = createToolButton(tr("New Triangle"), - QIcon(":/images/triangle.png"), - SLOT(createNewTriangle())); - - circlePath.addEllipse(QRect(0, 0, 100, 100)); - squarePath.addRect(QRect(0, 0, 100, 100)); - - qreal x = trianglePath.currentPosition().x(); - qreal y = trianglePath.currentPosition().y(); - trianglePath.moveTo(x + 120 / 2, y); - trianglePath.lineTo(0, 100); - trianglePath.lineTo(120, 100); - trianglePath.lineTo(x + 120 / 2, y); - -//! [3] //! [4] - setWindowTitle(tr("Tool Tips")); - resize(500, 300); - - createShapeItem(circlePath, tr("Circle"), initialItemPosition(circlePath), - initialItemColor()); - createShapeItem(squarePath, tr("Square"), initialItemPosition(squarePath), - initialItemColor()); - createShapeItem(trianglePath, tr("Triangle"), - initialItemPosition(trianglePath), initialItemColor()); -} -//! [4] - -//! [5] -bool SortingBox::event(QEvent *event) -{ -//! [5] //! [6] - if (event->type() == QEvent::ToolTip) { - QHelpEvent *helpEvent = static_cast<QHelpEvent *>(event); - int index = itemAt(helpEvent->pos()); - if (index != -1) { - QToolTip::showText(helpEvent->globalPos(), shapeItems[index].toolTip()); - } else { - QToolTip::hideText(); - event->ignore(); - } - - return true; - } - return QWidget::event(event); -} -//! [6] - -//! [7] -void SortingBox::resizeEvent(QResizeEvent * /* event */) -{ - int margin = style()->pixelMetric(QStyle::PM_LayoutTopMargin); - int x = width() - margin; - int y = height() - margin; - - y = updateButtonGeometry(newCircleButton, x, y); - y = updateButtonGeometry(newSquareButton, x, y); - updateButtonGeometry(newTriangleButton, x, y); -} -//! [7] - -//! [8] -void SortingBox::paintEvent(QPaintEvent * /* event */) -{ - QPainter painter(this); - painter.setRenderHint(QPainter::Antialiasing); - for (const ShapeItem &shapeItem : qAsConst(shapeItems)) { -//! [8] //! [9] - painter.translate(shapeItem.position()); -//! [9] //! [10] - painter.setBrush(shapeItem.color()); - painter.drawPath(shapeItem.path()); - painter.translate(-shapeItem.position()); - } -} -//! [10] - -//! [11] -void SortingBox::mousePressEvent(QMouseEvent *event) -{ - if (event->button() == Qt::LeftButton) { - int index = itemAt(event->position().toPoint()); - if (index != -1) { - itemInMotion = &shapeItems[index]; - previousPosition = event->position().toPoint(); - shapeItems.move(index, shapeItems.size() - 1); - update(); - } - } -} -//! [11] - -//! [12] -void SortingBox::mouseMoveEvent(QMouseEvent *event) -{ - if ((event->buttons() & Qt::LeftButton) && itemInMotion) - moveItemTo(event->position().toPoint()); -} -//! [12] - -//! [13] -void SortingBox::mouseReleaseEvent(QMouseEvent *event) -{ - if (event->button() == Qt::LeftButton && itemInMotion) { - moveItemTo(event->position().toPoint()); - itemInMotion = nullptr; - } -} -//! [13] - -//! [14] -void SortingBox::createNewCircle() -{ - static int count = 1; - createShapeItem(circlePath, tr("Circle <%1>").arg(++count), - randomItemPosition(), randomItemColor()); -} -//! [14] - -//! [15] -void SortingBox::createNewSquare() -{ - static int count = 1; - createShapeItem(squarePath, tr("Square <%1>").arg(++count), - randomItemPosition(), randomItemColor()); -} -//! [15] - -//! [16] -void SortingBox::createNewTriangle() -{ - static int count = 1; - createShapeItem(trianglePath, tr("Triangle <%1>").arg(++count), - randomItemPosition(), randomItemColor()); -} -//! [16] - -//! [17] -int SortingBox::itemAt(const QPoint &pos) -{ - for (int i = shapeItems.size() - 1; i >= 0; --i) { - const ShapeItem &item = shapeItems[i]; - if (item.path().contains(pos - item.position())) - return i; - } - return -1; -} -//! [17] - -//! [18] -void SortingBox::moveItemTo(const QPoint &pos) -{ - QPoint offset = pos - previousPosition; - itemInMotion->setPosition(itemInMotion->position() + offset); -//! [18] //! [19] - previousPosition = pos; - update(); -} -//! [19] - -//! [20] -int SortingBox::updateButtonGeometry(QToolButton *button, int x, int y) -{ - QSize size = button->sizeHint(); - button->setGeometry(x - size.rwidth(), y - size.rheight(), - size.rwidth(), size.rheight()); - - return y - size.rheight() - - style()->pixelMetric(QStyle::PM_LayoutVerticalSpacing); -} -//! [20] - -//! [21] -void SortingBox::createShapeItem(const QPainterPath &path, - const QString &toolTip, const QPoint &pos, - const QColor &color) -{ - ShapeItem shapeItem; - shapeItem.setPath(path); - shapeItem.setToolTip(toolTip); - shapeItem.setPosition(pos); - shapeItem.setColor(color); - shapeItems.append(shapeItem); - update(); -} -//! [21] - -//! [22] -QToolButton *SortingBox::createToolButton(const QString &toolTip, - const QIcon &icon, const char *member) -{ - QToolButton *button = new QToolButton(this); - button->setToolTip(toolTip); - button->setIcon(icon); - button->setIconSize(QSize(32, 32)); - connect(button, SIGNAL(clicked()), this, member); - - return button; -} -//! [22] - -//! [23] -QPoint SortingBox::initialItemPosition(const QPainterPath &path) -{ - int x; - int y = (height() - qRound(path.controlPointRect().height()) / 2); - if (shapeItems.size() == 0) - x = ((3 * width()) / 2 - qRound(path.controlPointRect().width())) / 2; - else - x = (width() / shapeItems.size() - - qRound(path.controlPointRect().width())) / 2; - - return QPoint(x, y); -} -//! [23] - -//! [24] -QPoint SortingBox::randomItemPosition() -{ - return QPoint(QRandomGenerator::global()->bounded(width() - 120), QRandomGenerator::global()->bounded(height() - 120)); -} -//! [24] - -//! [25] -QColor SortingBox::initialItemColor() -{ - return QColor::fromHsv(((shapeItems.size() + 1) * 85) % 256, 255, 190); -} -//! [25] - -//! [26] -QColor SortingBox::randomItemColor() -{ - return QColor::fromHsv(QRandomGenerator::global()->bounded(256), 255, 190); -} -//! [26] diff --git a/examples/widgets/widgets/tooltips/sortingbox.h b/examples/widgets/widgets/tooltips/sortingbox.h deleted file mode 100644 index 4fa9b4d36c..0000000000 --- a/examples/widgets/widgets/tooltips/sortingbox.h +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#ifndef SORTINGBOX_H -#define SORTINGBOX_H - -#include "shapeitem.h" - -#include <QWidget> - -QT_BEGIN_NAMESPACE -class QAction; -class QPoint; -class QToolButton; -QT_END_NAMESPACE - -//! [0] -class SortingBox : public QWidget -{ - Q_OBJECT - -public: - SortingBox(QWidget *parent = nullptr); - -protected: - bool event(QEvent *event) override; - void resizeEvent(QResizeEvent *event) override; - void paintEvent(QPaintEvent *event) override; - void mousePressEvent(QMouseEvent *event) override; - void mouseMoveEvent(QMouseEvent *event) override; - void mouseReleaseEvent(QMouseEvent *event) override; - -private slots: - void createNewCircle(); - void createNewSquare(); - void createNewTriangle(); -//! [0] - -//! [1] -private: - int updateButtonGeometry(QToolButton *button, int x, int y); - void createShapeItem(const QPainterPath &path, const QString &toolTip, - const QPoint &pos, const QColor &color); - int itemAt(const QPoint &pos); - void moveItemTo(const QPoint &pos); - QPoint initialItemPosition(const QPainterPath &path); - QPoint randomItemPosition(); - QColor initialItemColor(); - QColor randomItemColor(); - QToolButton *createToolButton(const QString &toolTip, const QIcon &icon, -//! [1] - const char *member); - -//! [2] - QList<ShapeItem> shapeItems; - QPainterPath circlePath; - QPainterPath squarePath; - QPainterPath trianglePath; - - QPoint previousPosition; - ShapeItem *itemInMotion; - - QToolButton *newCircleButton; - QToolButton *newSquareButton; - QToolButton *newTriangleButton; -}; -//! [2] - -#endif diff --git a/examples/widgets/widgets/tooltips/tooltips.pro b/examples/widgets/widgets/tooltips/tooltips.pro deleted file mode 100644 index d14b8295ba..0000000000 --- a/examples/widgets/widgets/tooltips/tooltips.pro +++ /dev/null @@ -1,12 +0,0 @@ -QT += widgets - -HEADERS = shapeitem.h \ - sortingbox.h -SOURCES = main.cpp \ - shapeitem.cpp \ - sortingbox.cpp -RESOURCES = tooltips.qrc - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/widgets/widgets/tooltips -INSTALLS += target diff --git a/examples/widgets/widgets/tooltips/tooltips.qrc b/examples/widgets/widgets/tooltips/tooltips.qrc deleted file mode 100644 index dabc894e9b..0000000000 --- a/examples/widgets/widgets/tooltips/tooltips.qrc +++ /dev/null @@ -1,7 +0,0 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>images/circle.png</file> - <file>images/square.png</file> - <file>images/triangle.png</file> -</qresource> -</RCC> |