From 7e32bff4a6d28c5f9109696361baa14e049b53f1 Mon Sep 17 00:00:00 2001 From: Irony <892768447@qq.com> Date: Sun, 28 Apr 2024 22:35:46 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=AA=20test(PyQt6):=20add=20support=20P?= =?UTF-8?q?yQt6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Test/WigglyWidget/LibWigglyWidget/CMakeLists.txt | 9 +++++++-- Test/WigglyWidget/LibWigglyWidget/wigglywidget.h | 16 ++++++---------- .../WigglyWidget/PyQtWrapper/TestWigglyWidget.py | 3 +++ Test/WigglyWidget/PyQtWrapper/pyproject.toml | 1 + Test/WigglyWidget/PyQtWrapper/requirements.txt | 2 ++ 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/Test/WigglyWidget/LibWigglyWidget/CMakeLists.txt b/Test/WigglyWidget/LibWigglyWidget/CMakeLists.txt index c2a505c..d647827 100644 --- a/Test/WigglyWidget/LibWigglyWidget/CMakeLists.txt +++ b/Test/WigglyWidget/LibWigglyWidget/CMakeLists.txt @@ -11,14 +11,19 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) # 配置安装目录 set(CMAKE_INSTALL_DIR "${CMAKE_SOURCE_DIR}/dist") +# 静态库 +set(BUILD_SHARED_LIBS OFF) + find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) -add_library(LibWigglyWidget STATIC wigglywidget.cpp wigglywidget.h) +add_library(LibWigglyWidget wigglywidget.cpp wigglywidget.h) target_link_libraries(LibWigglyWidget PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) -target_compile_definitions(LibWigglyWidget PRIVATE LIBWIGGLYWIDGET_LIBRARY) +if(BUILD_SHARED_LIBS) + target_compile_definitions(LibWigglyWidget PRIVATE LIBWIGGLYWIDGET_LIBRARY) +endif() # 配置生成的文件安装目录 install( diff --git a/Test/WigglyWidget/LibWigglyWidget/wigglywidget.h b/Test/WigglyWidget/LibWigglyWidget/wigglywidget.h index f047553..3df215e 100644 --- a/Test/WigglyWidget/LibWigglyWidget/wigglywidget.h +++ b/Test/WigglyWidget/LibWigglyWidget/wigglywidget.h @@ -10,31 +10,27 @@ #if defined(WIGGLYWIDGET_LIBRARY) #define WIGGLYWIDGET_EXPORT Q_DECL_EXPORT #else -#define WIGGLYWIDGET_EXPORT Q_DECL_IMPORT +#define WIGGLYWIDGET_EXPORT #endif #endif -#ifdef Q_OS_WIN class WIGGLYWIDGET_EXPORT WigglyWidget : public QWidget { -#else -class WigglyWidget : public QWidget { -#endif Q_OBJECT - public: +public: WigglyWidget(QWidget *parent = nullptr); - public slots: +public slots: void setText(const QString &newText); - protected: +protected: virtual void paintEvent(QPaintEvent *event) override; virtual void timerEvent(QTimerEvent *event) override; - private: +private: QBasicTimer timer; QString text; int step; }; -#endif // WIGGLYWIDGET_H +#endif // WIGGLYWIDGET_H diff --git a/Test/WigglyWidget/PyQtWrapper/TestWigglyWidget.py b/Test/WigglyWidget/PyQtWrapper/TestWigglyWidget.py index 04f0131..ac1177a 100644 --- a/Test/WigglyWidget/PyQtWrapper/TestWigglyWidget.py +++ b/Test/WigglyWidget/PyQtWrapper/TestWigglyWidget.py @@ -42,4 +42,7 @@ def __init__(self, *args, **kwargs): app = QApplication(sys.argv) w = TestWigglyWidget() w.show() + w.resize(800, 600) + if not hasattr(app, "exec_"): + app.exec_ = app.exec sys.exit(app.exec_()) diff --git a/Test/WigglyWidget/PyQtWrapper/pyproject.toml b/Test/WigglyWidget/PyQtWrapper/pyproject.toml index 9987efc..fb83751 100644 --- a/Test/WigglyWidget/PyQtWrapper/pyproject.toml +++ b/Test/WigglyWidget/PyQtWrapper/pyproject.toml @@ -35,6 +35,7 @@ sip-include-dirs = [ "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/PyQt5/bindings", "/usr/local/lib64/python3.6/site-packages/PyQt5/bindings", "C:/soft/Python311/Lib/site-packages/PyQt5/bindings", + "C:/soft/Python/lib/site-packages/PyQt6/bindings" ] # Configure the building of the fib bindings. diff --git a/Test/WigglyWidget/PyQtWrapper/requirements.txt b/Test/WigglyWidget/PyQtWrapper/requirements.txt index 09a4cf9..4d4e9f1 100644 --- a/Test/WigglyWidget/PyQtWrapper/requirements.txt +++ b/Test/WigglyWidget/PyQtWrapper/requirements.txt @@ -1,4 +1,6 @@ PyQt5 +PyQt6 sip PyQt5-sip +PyQt6-sip PyQt-builder