Skip to content

Commit

Permalink
add wiggly example
Browse files Browse the repository at this point in the history
  • Loading branch information
gammasoft71 committed May 11, 2020
1 parent 9e6b018 commit 87a9f2f
Show file tree
Hide file tree
Showing 46 changed files with 579 additions and 46 deletions.
388 changes: 384 additions & 4 deletions CMakeLists.txt.user

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Qt.Tests/TestConsole/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Application
add_executable(TestConsole src/main.cpp)
target_link_libraries(TestConsole Qt5::Core)
target_link_libraries(TestConsole Qt5::Core Qt5::Widgets)
1 change: 1 addition & 0 deletions Qt.Widgets/Application/DarkMode/src/DarkMode.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QApplication>
#include <QCheckBox>
#include <QFrame>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/CheckBox/src/CheckBox.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QMainWindow>
#include <QCheckBox>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QDebug>
#include <QFrame>
#include <QMainWindow>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/ComboBox/src/ComboBox.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QComboBox>
#include <QFrame>
#include <QMainWindow>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QLabel>
#include <QMainWindow>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/LCDNumber/src/LCDNumber.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFont>
#include <QFrame>
#include <QLCDNumber>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/Label/src/Label.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QMainWindow>
#include <QLabel>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/LineEdit/src/LineEdit.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QMainWindow>
#include <QLineEdit>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/PictureBox/src/PictureBox.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QLabel>
#include <QMainWindow>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/PictureBox2/src/PictureBox2.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QGraphicsPixmapItem>
#include <QGraphicsScene>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/ProgressBar/src/ProgressBar.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QMainWindow>
#include <QProgressBar>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/PushButton/src/PushButton.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QLabel>
#include <QMainWindow>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/RadioButton/src/RadioButton.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QMainWindow>
#include <QRadioButton>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/Slider/src/Slider.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QLabel>
#include <QMainWindow>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/SpinBox/src/SpinBox.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QLabel>
#include <QMainWindow>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/SpinButton/src/SpinButton.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QLabel>
#include <QMainWindow>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/ToggleButton/src/ToggleButton.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QMainWindow>
#include <QPushButton>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/CommonControls/Widget/src/Widget.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QMainWindow>
#include <QWidget>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Components/Cursors/src/Cursors.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QCursor>
#include <QFrame>
#include <QListWidget>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Components/Timer/src/Timer.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFont>
#include <QFrame>
#include <QLabel>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Containers/Frame/src/Frame.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QMainWindow>
#include <QFrame>

Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Containers/GroupBox/src/GroupBox.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QGroupBox>
#include <QMainWindow>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Containers/TabWidget/src/TabWidget.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QMainWindow>
#include <QTabWidget>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Containers/Window/src/Window.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QCloseEvent>
#include <QFrame>
#include <QMainWindow>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Dialogs/ColorDialog/src/ColorDialog.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QColorDialog>
#include <QFrame>
#include <QMainWindow>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFileDialog>
#include <QMainWindow>
#include <QDir>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Dialogs/FontDialog/src/FontDialog.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFontDialog>
#include <QFrame>
#include <QDebug>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Dialogs/MessageBox/src/MessageBox.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QLabel>
#include <QMainWindow>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Dialogs/OpenFileDialog/src/OpenFileDialog.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFileDialog>
#include <QFrame>
#include <QLabel>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Dialogs/SaveFileDialog/src/SaveFileDialog.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFileDialog>
#include <QFrame>
#include <QLabel>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QApplication>
#include <QFrame>
#include <QMainWindow>
Expand All @@ -6,11 +7,11 @@

namespace Examples {
#if defined(__APPLE__)
int pointsToNativeFontGraphicsUntit(int size) {
inline int pointsToNativeFontGraphicsUntit(int size) {
return static_cast<float>(size) /QApplication::primaryScreen()->logicalDotsPerInch() * 96.0f; // font is in pixels and not in points
}
#else
int pointsToNativeFontGraphicsUntit(int size) {
inline int pointsToNativeFontGraphicsUntit(int size) {
return size; // font is in points
}
#endif
Expand Down
5 changes: 3 additions & 2 deletions Qt.Widgets/HelloWorld/HelloWorldLabel/src/HelloWorldLabel.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QApplication>
#include <QFrame>
#include <QMainWindow>
Expand All @@ -6,11 +7,11 @@

namespace Examples {
#if defined(__APPLE__)
int pointsToNativeFontGraphicsUntit(int size) {
inline int pointsToNativeFontGraphicsUntit(int size) {
return static_cast<float>(size) /QApplication::primaryScreen()->logicalDotsPerInch() * 96.0f; // font is in pixels and not in points
}
#else
int pointsToNativeFontGraphicsUntit(int size) {
inline int pointsToNativeFontGraphicsUntit(int size) {
return size; // font is in points
}
#endif
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QMainWindow>
#include <QMessageBox>
Expand Down
5 changes: 3 additions & 2 deletions Qt.Widgets/HelloWorld/HelloWorldPaint/src/HelloWorldPaint.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QApplication>
#include <QFrame>
#include <QMainWindow>
Expand All @@ -7,11 +8,11 @@

namespace Examples {
#if defined(__APPLE__)
int pointsToNativeFontGraphicsUntit(int size) {
inline int pointsToNativeFontGraphicsUntit(int size) {
return static_cast<float>(size) /QApplication::primaryScreen()->logicalDotsPerInch() * 96.0f; // font is in pixels and not in points
}
#else
int pointsToNativeFontGraphicsUntit(int size) {
inline int pointsToNativeFontGraphicsUntit(int size) {
return size; // font is in points
}
#endif
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/MenusAndToolbars/MenuBar/src/MenuBar.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include <QAction>
#include <QDebug>
#include <QFrame>
#pragma once
#include <QMainWindow>
#include <QMenu>
#include <QMessageBox>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/MenusAndToolbars/StatusBar/src/StatusBar.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QFrame>
#include <QMainWindow>
#include <QStatusBar>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Others/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ project(Others)

# Others
add_subdirectory(LCDNumber2)
add_subdirectory(Wiggly)
1 change: 1 addition & 0 deletions Qt.Widgets/Others/LCDNumber2/src/LCDNumber2.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma once
#include <QMouseEvent>
#include <QLCDNumber>
#include <QFont>
Expand Down
1 change: 1 addition & 0 deletions Qt.Widgets/Others/Others.pro
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
TEMPLATE = subdirs
SUBDIRS = \
LCDNumber2 \
Wiggly |
17 changes: 17 additions & 0 deletions Qt.Widgets/Others/Wiggly/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
cmake_minimum_required(VERSION 3.1)

# Project
project(Wiggly)
find_package(Qt5Widgets CONFIG REQUIRED)

# Options
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Application
add_executable(Wiggly WIN32 MACOSX_BUNDLE src/Wiggly.cpp src/Wiggly.h)
target_link_libraries(Wiggly Qt5::Widgets)

4 changes: 4 additions & 0 deletions Qt.Widgets/Others/Wiggly/Wiggly.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
CONFIG += c++17
QT = widgets
SOURCES = src/Wiggly.cpp
HEADERS = src/Wiggly.h
11 changes: 11 additions & 0 deletions Qt.Widgets/Others/Wiggly/src/Wiggly.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#include <QApplication>
#include "Wiggly.h"

using namespace Examples;

int main(int argc, char *argv[]) {
QApplication application(argc, argv);
Window1 window1;
window1.show();
return application.exec();
}
80 changes: 80 additions & 0 deletions Qt.Widgets/Others/Wiggly/src/Wiggly.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
#pragma once
#include <QBasicTimer>
#include <QFrame>
#include <QLineEdit>
#include <QMainWindow>
#include <QPaintEvent>
#include <QPainter>
#include <QVBoxLayout>

namespace Examples {
class WigglyWidget : public QWidget {
Q_OBJECT
public:
WigglyWidget(QWidget *parent = nullptr) : QWidget(parent) {
setBackgroundRole(QPalette::Midlight);
setAutoFillBackground(true);

auto newFont = font();
newFont.setPointSize(newFont.pointSize() + 20);
setFont(newFont);

timer.start(60, this);
}

public slots:
void setText(const QString &newText) {text = newText;}

protected:
void paintEvent(QPaintEvent *) override {
static const std::vector sins = {0, 38, 71, 92, 100, 92, 71, 38, 0, -38, -71, -92, -100, -92, -71, -38};
QFontMetrics metrics(font());
auto pos = QPoint {(width() - metrics.horizontalAdvance(text)) / 2, (height() + metrics.ascent() - metrics.descent()) / 2};
QPainter painter(this);
for (auto i = 0; i < text.size(); ++i) {
auto index = (step + i) % sins.size();
painter.setPen(QColor::fromHsv(360.0f / sins.size() * index, 255, 191));
painter.drawText(pos - QPoint {0, (sins[index] * metrics.height()) / 400}, QString(text[i]));
pos.setX(pos.x() + metrics.horizontalAdvance(text[i]));
}
}

void timerEvent(QTimerEvent *event) override {
if (event->timerId() == timer.timerId()) {
++step;
update();
} else
QWidget::timerEvent(event);
}

private:
QBasicTimer timer;
QString text;
int step = 0;
};

class Window1 : public QMainWindow {
Q_OBJECT
public:
Window1() {
setCentralWidget(&frame);
setWindowTitle("Wiggly");
resize(330, 130);
connect(&lineEdit, &QLineEdit::textChanged, &wigglyWidget, &WigglyWidget::setText);

wigglyWidget.setGeometry(20, 20, 290, 60);

layout.addWidget(&wigglyWidget);
layout.addWidget(&lineEdit);
lineEdit.move(20, 90);
lineEdit.setGeometry(20, 90, 290, lineEdit.height());
lineEdit.setText("Habemus papam");
}

private:
QFrame frame;
QVBoxLayout layout {&frame};
WigglyWidget wigglyWidget;
QLineEdit lineEdit;
};
}
Loading

0 comments on commit 87a9f2f

Please sign in to comment.