diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/widgets/doc/images/mousebutton-buttontester.png | bin | 17428 -> 0 bytes | |||
-rw-r--r-- | examples/widgets/doc/mousebuttons.qdoc | 70 | ||||
-rw-r--r-- | examples/widgets/widgets/CMakeLists.txt | 1 | ||||
-rw-r--r-- | examples/widgets/widgets/mousebuttons/CMakeLists.txt | 37 | ||||
-rw-r--r-- | examples/widgets/widgets/mousebuttons/buttontester.cpp | 184 | ||||
-rw-r--r-- | examples/widgets/widgets/mousebuttons/buttontester.h | 29 | ||||
-rw-r--r-- | examples/widgets/widgets/mousebuttons/main.cpp | 36 | ||||
-rw-r--r-- | examples/widgets/widgets/mousebuttons/mousebuttons.pro | 16 | ||||
-rw-r--r-- | examples/widgets/widgets/widgets.pro | 1 |
9 files changed, 0 insertions, 374 deletions
diff --git a/examples/widgets/doc/images/mousebutton-buttontester.png b/examples/widgets/doc/images/mousebutton-buttontester.png Binary files differdeleted file mode 100644 index f8f71db59b..0000000000 --- a/examples/widgets/doc/images/mousebutton-buttontester.png +++ /dev/null diff --git a/examples/widgets/doc/mousebuttons.qdoc b/examples/widgets/doc/mousebuttons.qdoc deleted file mode 100644 index ecf46dc094..0000000000 --- a/examples/widgets/doc/mousebuttons.qdoc +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// Copyright (C) 2016 Rick Stockton <rickstockton@reno-computerhelp.com> -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only - -/*! - \example widgets/mousebuttons - \title Mouse Button Tester - - \brief The 'Mouse Button Tester' example demonstrates how to reimplement - mouse events within a custom class. You can also use this program to - verify that Qt is actually receiving mouse events from your mouse. - - Many 'gamer' mouse devices are configured with high-numbered "buttons" - sending text shortcuts for certain games. With such a mouse, no mouse - button events occur: The "mouse" sends keystrokes, and the - 'Mouse Button Tester' Window will not see the event. Receiving no event, - it will not repaint the Window with new text describing a button event. - - And so, in addition to it's use as Qt example code, the program may be - useful s a mouse device tester. Note that there is another example - mouse buttons example which provides the same function, written in QML. - - This program (the Widget-based example) consists of three classes, - in addition to the main() parent program: - - \list - \li \c A QPushButton, "Quit". - \li \c ButtonTester. This is derived from Qt's TextArea class, for - purpose of customizing/re-implementing the mouse and wheel event - member functions. - \li \c A simple QVBoxLayout layout. - \endlist - - First we will review the main program, with it's layout and "Quit" - QPushButton. Then we will take a look at the \c ButtonTester class. - - \section1 The Main Program - - Note that the QPushButton, "Quit", is defined directly within the main() - program, rather than another class. This is a correct way of defining a - "Quit" QPushButton: A "Quit" Button defined inside another - class would result in the destructor of that second class being - called twice. This "Quit" Button uses the traditional Signal/Slot - connection to invoke termination of the QApp, which will properly destroy - its child classes before terminating itself. - - The remainder of the main() program is concerned with defining the layout, - and applying a minimum size to the customized ButtonTester. - - \section1 ButtonTester Class Definition - - The \c ButtonTester class inherits from QTextEdit, and listens for - mouse events on all possible Qt::MouseButton values. It also listens for - wheel events from the mouse, and indicates the direction of wheel motion - ("up", down", "left", or "right"). It prints short debug messages into - the Window, and also on the console QDebug() stream, when mouse button - and wheel events occur. Our reimplementation of mousePressEvent(), - mouseReleaseEvent(), mouseDoubleClickEvent(), and wheelEvent() "drive" - the program; the other functions simply convert the Qt::MouseButton - values into text strings. - - You should call the ignore() function on any mouse event (or other event) - which your widget-based classes do not use and consume. This function - assures that Qt will propagate the event through each parent widget, - until it is used or propagated to the Window Manager. (Qt attempts to do - this automatically, but it is better programming practice to explicitly - invoke the function.) - - \image mousebutton-buttontester.png -*/ diff --git a/examples/widgets/widgets/CMakeLists.txt b/examples/widgets/widgets/CMakeLists.txt index 35118b984d..06f57d1e28 100644 --- a/examples/widgets/widgets/CMakeLists.txt +++ b/examples/widgets/widgets/CMakeLists.txt @@ -15,7 +15,6 @@ qt_internal_add_example(lineedits) if(QT_FEATURE_movie) qt_internal_add_example(movie) endif() -qt_internal_add_example(mousebuttons) qt_internal_add_example(scribble) qt_internal_add_example(shapedclock) qt_internal_add_example(shortcuteditor) diff --git a/examples/widgets/widgets/mousebuttons/CMakeLists.txt b/examples/widgets/widgets/mousebuttons/CMakeLists.txt deleted file mode 100644 index 2957a2b787..0000000000 --- a/examples/widgets/widgets/mousebuttons/CMakeLists.txt +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: BSD-3-Clause - -cmake_minimum_required(VERSION 3.16) -project(mousebuttons LANGUAGES CXX) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/widgets/widgets/mousebuttons") - -find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets) - -qt_standard_project_setup() - -qt_add_executable(mousebuttons - buttontester.cpp buttontester.h - main.cpp -) - -set_target_properties(mousebuttons PROPERTIES - WIN32_EXECUTABLE TRUE - MACOSX_BUNDLE TRUE -) - -target_link_libraries(mousebuttons PRIVATE - Qt6::Core - Qt6::Gui - Qt6::Widgets -) - -install(TARGETS mousebuttons - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/widgets/widgets/mousebuttons/buttontester.cpp b/examples/widgets/widgets/mousebuttons/buttontester.cpp deleted file mode 100644 index f2cbd4ea06..0000000000 --- a/examples/widgets/widgets/mousebuttons/buttontester.cpp +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// Copyright (C) 2016 Rick Stockton <rickstockton@reno-computerhelp.com> -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include "buttontester.h" - -#include <QDebug> - -void ButtonTester::mousePressEvent(QMouseEvent *e) -{ - int j = ButtonTester::buttonByNumber (e->button()); - QString result = "Mouse Press: raw button=" + QString::number(j) - + " Qt=" + enumNameFromValue(e->button()); - QString buttonsString = ButtonTester::enumNamesFromMouseButtons(e->buttons()); - result += "\n heldbuttons " + buttonsString; - qDebug() << result; - this->setText(result); - this->repaint(); -} - -void ButtonTester::mouseReleaseEvent(QMouseEvent *e) -{ - int j = ButtonTester::buttonByNumber (e->button()); - QString result = "Mouse Release: raw button=" + QString::number(j) - + " Qt=" + enumNameFromValue(e->button()); - QString buttonsString = ButtonTester::enumNamesFromMouseButtons(e->buttons()); - result += "\n heldbuttons " + buttonsString; - qDebug() << result; - this->setText(result); - this->repaint(); - -} - -void ButtonTester::mouseDoubleClickEvent(QMouseEvent *e) -{ - int j = ButtonTester::buttonByNumber (e->button()); - QString result = "Mouse DoubleClick: raw button=" + QString::number(j) - + " Qt=" + enumNameFromValue(e->button()); - QString buttonsString = ButtonTester::enumNamesFromMouseButtons(e->buttons()); - result += "\n heldbuttons" + buttonsString; - qDebug() << result; - this->setText(result); -} - -#if QT_CONFIG(wheelevent) -void ButtonTester::wheelEvent (QWheelEvent *e) -{ - QString result; - const bool vertical = qAbs(e->angleDelta().y()) >= qAbs(e->angleDelta().x()); - const int delta = vertical ? e->angleDelta().y() : e->angleDelta().x(); - if (delta > 0) { - if (vertical) { - result = "Mouse Wheel Event: UP"; - } else { - result = "Mouse Wheel Event: LEFT"; - } - } else if (delta < 0) { - if (vertical) { - result = "Mouse Wheel Event: DOWN"; - } else { - result = "Mouse Wheel Event: RIGHT"; - } - } - qDebug() << result; - this->setText(result); -} -#endif - -int ButtonTester::buttonByNumber(const Qt::MouseButton button) -{ - if (button == Qt::NoButton) return 0; - if (button == Qt::LeftButton) return 1; - if (button == Qt::RightButton) return 2; - if (button == Qt::MiddleButton) return 3; - -/* Please note that Qt Button #4 corresponds to button #8 on all - * platforms which EMULATE wheel events by creating button events - * (Button #4 = Scroll Up; Button #5 = Scroll Down; Button #6 = Scroll - * Left; and Button #7 = Scroll Right.) This includes X11, with both - * Xlib and XCB. So, the "raw button" for "Qt::BackButton" is - * usually described as "Button #8". - - * If your platform supports "smooth scrolling", then, for the cases of - * Qt::BackButton and higher, this program will show "raw button" with a - * value which is too large. Subtract 4 to get the correct button ID for - * your platform. - */ - - if (button == Qt::BackButton) return 8; - if (button == Qt::ForwardButton) return 9; - if (button == Qt::TaskButton) return 10; - if (button == Qt::ExtraButton4) return 11; - if (button == Qt::ExtraButton5) return 12; - if (button == Qt::ExtraButton6) return 13; - if (button == Qt::ExtraButton7) return 14; - if (button == Qt::ExtraButton8) return 15; - if (button == Qt::ExtraButton9) return 16; - if (button == Qt::ExtraButton10) return 17; - if (button == Qt::ExtraButton11) return 18; - if (button == Qt::ExtraButton12) return 19; - if (button == Qt::ExtraButton13) return 20; - if (button == Qt::ExtraButton14) return 21; - if (button == Qt::ExtraButton15) return 22; - if (button == Qt::ExtraButton16) return 23; - if (button == Qt::ExtraButton17) return 24; - if (button == Qt::ExtraButton18) return 25; - if (button == Qt::ExtraButton19) return 26; - if (button == Qt::ExtraButton20) return 27; - if (button == Qt::ExtraButton21) return 28; - if (button == Qt::ExtraButton22) return 29; - if (button == Qt::ExtraButton23) return 30; - if (button == Qt::ExtraButton24) return 31; - qDebug("QMouseShortcutEntry::addShortcut contained Invalid Qt::MouseButton value"); - return 0; -} - -QString ButtonTester::enumNameFromValue(const Qt::MouseButton button) -{ - if (button == Qt::NoButton) return "NoButton"; - if (button == Qt::LeftButton) return "LeftButton"; - if (button == Qt::RightButton) return "RightButton"; - if (button == Qt::MiddleButton) return "MiddleButton"; - if (button == Qt::BackButton) return "BackButton"; - if (button == Qt::ForwardButton) return "ForwardButton"; - if (button == Qt::TaskButton) return "TaskButton"; - if (button == Qt::ExtraButton4) return "ExtraButton4"; - if (button == Qt::ExtraButton5) return "ExtraButton5"; - if (button == Qt::ExtraButton6) return "ExtraButton6"; - if (button == Qt::ExtraButton7) return "ExtraButton7"; - if (button == Qt::ExtraButton8) return "ExtraButton8"; - if (button == Qt::ExtraButton9) return "ExtraButton9"; - if (button == Qt::ExtraButton10) return "ExtraButton10"; - if (button == Qt::ExtraButton11) return "ExtraButton11"; - if (button == Qt::ExtraButton12) return "ExtraButton12"; - if (button == Qt::ExtraButton13) return "ExtraButton13"; - if (button == Qt::ExtraButton14) return "ExtraButton14"; - if (button == Qt::ExtraButton15) return "ExtraButton15"; - if (button == Qt::ExtraButton16) return "ExtraButton16"; - if (button == Qt::ExtraButton17) return "ExtraButton17"; - if (button == Qt::ExtraButton18) return "ExtraButton18"; - if (button == Qt::ExtraButton19) return "ExtraButton19"; - if (button == Qt::ExtraButton20) return "ExtraButton20"; - if (button == Qt::ExtraButton21) return "ExtraButton21"; - if (button == Qt::ExtraButton22) return "ExtraButton22"; - if (button == Qt::ExtraButton23) return "ExtraButton23"; - if (button == Qt::ExtraButton24) return "ExtraButton24"; - qDebug("QMouseShortcutEntry::addShortcut contained Invalid Qt::MouseButton value"); - return "NoButton"; -} - -QString ButtonTester::enumNamesFromMouseButtons(const Qt::MouseButtons buttons) -{ - QString returnText = ""; - if (buttons == Qt::NoButton) return "NoButton"; - if (buttons & Qt::LeftButton) returnText += "LeftButton "; - if (buttons & Qt::RightButton) returnText += "RightButton "; - if (buttons & Qt::MiddleButton) returnText += "MiddleButton "; - if (buttons & Qt::BackButton) returnText += "BackButton "; - if (buttons & Qt::ForwardButton) returnText += "ForwardButton "; - if (buttons & Qt::TaskButton) returnText += "TaskButton "; - if (buttons & Qt::ExtraButton4) returnText += "ExtraButton4 "; - if (buttons & Qt::ExtraButton5) returnText += "ExtraButton5 "; - if (buttons & Qt::ExtraButton6) returnText += "ExtraButton6 "; - if (buttons & Qt::ExtraButton7) returnText += "ExtraButton7 "; - if (buttons & Qt::ExtraButton8) returnText += "ExtraButton8 "; - if (buttons & Qt::ExtraButton9) returnText += "ExtraButton9 "; - if (buttons & Qt::ExtraButton10) returnText += "ExtraButton10 "; - if (buttons & Qt::ExtraButton11) returnText += "ExtraButton11 "; - if (buttons & Qt::ExtraButton12) returnText += "ExtraButton12 "; - if (buttons & Qt::ExtraButton13) returnText += "ExtraButton13 "; - if (buttons & Qt::ExtraButton14) returnText += "ExtraButton14 "; - if (buttons & Qt::ExtraButton15) returnText += "ExtraButton15 "; - if (buttons & Qt::ExtraButton16) returnText += "ExtraButton16 "; - if (buttons & Qt::ExtraButton17) returnText += "ExtraButton17 "; - if (buttons & Qt::ExtraButton18) returnText += "ExtraButton18 "; - if (buttons & Qt::ExtraButton19) returnText += "ExtraButton19 "; - if (buttons & Qt::ExtraButton20) returnText += "ExtraButton20 "; - if (buttons & Qt::ExtraButton21) returnText += "ExtraButton21 "; - if (buttons & Qt::ExtraButton22) returnText += "ExtraButton22 "; - if (buttons & Qt::ExtraButton23) returnText += "ExtraButton23 "; - if (buttons & Qt::ExtraButton24) returnText += "ExtraButton24 "; - return returnText; -} - diff --git a/examples/widgets/widgets/mousebuttons/buttontester.h b/examples/widgets/widgets/mousebuttons/buttontester.h deleted file mode 100644 index b2670c773a..0000000000 --- a/examples/widgets/widgets/mousebuttons/buttontester.h +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// Copyright (C) 2016 Rick Stockton <rickstockton@reno-computerhelp.com> -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause -#ifndef BUTTONTESTER_H -#define BUTTONTESTER_H - -#include <QTextEdit> -#include <QString> -#include <QMouseEvent> -#include <QWheelEvent> - -class ButtonTester : public QTextEdit -{ - Q_OBJECT -public: - using QTextEdit::QTextEdit; -protected: - void mousePressEvent(QMouseEvent *event) override; - void mouseReleaseEvent(QMouseEvent *event) override; - void mouseDoubleClickEvent(QMouseEvent *event) override; -#if QT_CONFIG(wheelevent) - void wheelEvent(QWheelEvent *event) override; -#endif - int buttonByNumber(const Qt::MouseButton button); - QString enumNameFromValue(const Qt::MouseButton button); - QString enumNamesFromMouseButtons(const Qt::MouseButtons buttons); -}; - -#endif // BUTTONTESTER_H diff --git a/examples/widgets/widgets/mousebuttons/main.cpp b/examples/widgets/widgets/mousebuttons/main.cpp deleted file mode 100644 index 850e0c7999..0000000000 --- a/examples/widgets/widgets/mousebuttons/main.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// Copyright (C) 2016 Rick Stockton <rickstockton@reno-computerhelp.com> -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#include "buttontester.h" - -#include <QApplication> -#include <QPushButton> -#include <QVBoxLayout> - -int main(int argv, char **args) -{ - QApplication app(argv, args); - - ButtonTester *testArea = new ButtonTester; - testArea->setMinimumSize(500, 350); - -// For this test, Qt::RightButton behaves like any other button. - testArea->setContextMenuPolicy(Qt::NoContextMenu); - testArea->setTextInteractionFlags(Qt::TextSelectableByMouse); - testArea->setText("To test your mouse with Qt, press buttons in this area.\nYou may also scroll or tilt your mouse wheel."); - QPushButton *quitButton = new QPushButton("Quit"); - - QObject::connect(quitButton, &QPushButton::clicked, qApp, &QCoreApplication::quit); - - QVBoxLayout *layout = new QVBoxLayout; - layout->addWidget(testArea); - layout->addWidget(quitButton); - - QWidget window; - window.setLayout(layout); - window.setWindowTitle("Mouse Button Tester"); - window.show(); - - return app.exec(); -} diff --git a/examples/widgets/widgets/mousebuttons/mousebuttons.pro b/examples/widgets/widgets/mousebuttons/mousebuttons.pro deleted file mode 100644 index e1f4b9527d..0000000000 --- a/examples/widgets/widgets/mousebuttons/mousebuttons.pro +++ /dev/null @@ -1,16 +0,0 @@ -TEMPLATE = app - -TARGET = mousebuttons -TEMPLATE = app - -SOURCES += \ - main.cpp\ - buttontester.cpp \ - -HEADERS += \ - buttontester.h \ - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/widgets/widgets/mousebuttons -INSTALLS += target -QT += core widgets diff --git a/examples/widgets/widgets/widgets.pro b/examples/widgets/widgets/widgets.pro index fe3e289944..3b2f99cf54 100644 --- a/examples/widgets/widgets/widgets.pro +++ b/examples/widgets/widgets/widgets.pro @@ -11,7 +11,6 @@ SUBDIRS = analogclock \ imageviewer \ lineedits \ movie \ - mousebuttons \ scribble \ shapedclock \ sliders \ |