mirror of
https://github.com/shlomif/PySolFC.git
synced 2025-04-05 00:02:29 -04:00
progress with the svg.
This commit is contained in:
parent
5a02d487d2
commit
cfc2b047b4
5 changed files with 89 additions and 29 deletions
|
@ -3,7 +3,34 @@ cmake_minimum_required(VERSION 3.12)
|
||||||
cmake_policy(VERSION 3.12)
|
cmake_policy(VERSION 3.12)
|
||||||
|
|
||||||
find_package(ECM 5 REQUIRED CONFIG)
|
find_package(ECM 5 REQUIRED CONFIG)
|
||||||
find_package(Qt5 COMPONENTS Core Gui REQUIRED)
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
|
||||||
|
find_package(Qt5 COMPONENTS Core Gui Svg REQUIRED)
|
||||||
|
find_package(KF5 "5.0.0" REQUIRED COMPONENTS
|
||||||
|
Completion
|
||||||
|
Config
|
||||||
|
ConfigWidgets
|
||||||
|
CoreAddons
|
||||||
|
Crash
|
||||||
|
DBusAddons
|
||||||
|
DocTools
|
||||||
|
GuiAddons
|
||||||
|
I18n
|
||||||
|
KIO
|
||||||
|
NewStuff
|
||||||
|
WidgetsAddons
|
||||||
|
XmlGui
|
||||||
|
)
|
||||||
|
find_package(Shiboken2 "2.0.0" REQUIRED)
|
||||||
|
find_package(PySide2 "2.0.0" REQUIRED)
|
||||||
|
find_package(KF5KDEGames 4.9.0 REQUIRED)
|
||||||
|
include(FeatureSummary)
|
||||||
|
include(ECMAddAppIcon)
|
||||||
|
include(ECMInstallIcons)
|
||||||
|
include(KDEInstallDirs)
|
||||||
|
include(KDECompilerSettings NO_POLICY_SCOPE)
|
||||||
|
include(KDECMakeSettings)
|
||||||
|
include(ECMQtDeclareLoggingCategory)
|
||||||
|
include(GenerateExportHeader)
|
||||||
|
|
||||||
get_target_property(QtCore_location Qt5::Core LOCATION)
|
get_target_property(QtCore_location Qt5::Core LOCATION)
|
||||||
get_filename_component(QtCore_libdir ${QtCore_location} DIRECTORY)
|
get_filename_component(QtCore_libdir ${QtCore_location} DIRECTORY)
|
||||||
|
@ -18,7 +45,7 @@ set(bindings_library "Shiboken2QtExample")
|
||||||
set(wrapped_header ${CMAKE_SOURCE_DIR}/bindings.h)
|
set(wrapped_header ${CMAKE_SOURCE_DIR}/bindings.h)
|
||||||
set(typesystem_file ${CMAKE_SOURCE_DIR}/bindings.xml)
|
set(typesystem_file ${CMAKE_SOURCE_DIR}/bindings.xml)
|
||||||
set(generated_sources
|
set(generated_sources
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${bindings_library}/kcarddeck_wrapper_wrapper.cpp
|
${CMAKE_CURRENT_BINARY_DIR}/${bindings_library}/mykcarddeck_wrapper.cpp
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${bindings_library}/shiboken2qtexample_module_wrapper.cpp)
|
${CMAKE_CURRENT_BINARY_DIR}/${bindings_library}/shiboken2qtexample_module_wrapper.cpp)
|
||||||
|
|
||||||
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
|
find_package(Python3 REQUIRED COMPONENTS Interpreter Development)
|
||||||
|
@ -70,9 +97,27 @@ set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||||
set(CMAKE_INSTALL_RPATH ${shiboken2_module_path} ${CMAKE_CURRENT_SOURCE_DIR} ${QtCore_libdir})
|
set(CMAKE_INSTALL_RPATH ${shiboken2_module_path} ${CMAKE_CURRENT_SOURCE_DIR} ${QtCore_libdir})
|
||||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||||
|
|
||||||
set(${sample_library}_sources qobjectwithenum.cpp)
|
set(${sample_library}_sources kcardgame.cpp
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame/kabstractcarddeck.cpp"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame/kcard.cpp"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/../build-kpat/libkcardgame/libkcardgame_debug.cpp"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame/kcarddeck.cpp"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame/kcardtheme.cpp"
|
||||||
|
|
||||||
|
)
|
||||||
add_library(${sample_library} SHARED ${${sample_library}_sources})
|
add_library(${sample_library} SHARED ${${sample_library}_sources})
|
||||||
target_link_libraries(${sample_library} Qt5::Core Qt5::Gui)
|
target_link_libraries(${sample_library} Qt5::Core Qt5::Gui)
|
||||||
|
target_link_libraries(${sample_library}
|
||||||
|
KF5::Crash
|
||||||
|
KF5::DBusAddons
|
||||||
|
KF5::I18n
|
||||||
|
KF5::KIOCore
|
||||||
|
KF5KDEGames
|
||||||
|
)
|
||||||
|
target_link_libraries( ${sample_library} KF5::NewStuff KF5::GuiAddons Qt5::Svg KF5::Completion KF5::I18n)
|
||||||
|
|
||||||
|
target_link_libraries(${sample_library} Shiboken2::libshiboken)
|
||||||
|
target_link_libraries(${sample_library} PySide2::pyside2)
|
||||||
set_property(TARGET ${sample_library} PROPERTY PREFIX "")
|
set_property(TARGET ${sample_library} PROPERTY PREFIX "")
|
||||||
|
|
||||||
get_target_property(qtgui_lib_includes Qt5::Gui INTERFACE_INCLUDE_DIRECTORIES)
|
get_target_property(qtgui_lib_includes Qt5::Gui INTERFACE_INCLUDE_DIRECTORIES)
|
||||||
|
@ -116,6 +161,7 @@ add_library(${bindings_library} MODULE ${${bindings_library}_sources})
|
||||||
|
|
||||||
target_include_directories(${bindings_library} PRIVATE ${python_include_dir})
|
target_include_directories(${bindings_library} PRIVATE ${python_include_dir})
|
||||||
target_include_directories(${bindings_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame")
|
target_include_directories(${bindings_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame")
|
||||||
|
target_include_directories(${bindings_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../build-kpat/")
|
||||||
target_include_directories(${bindings_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../build-kpat/libkcardgame")
|
target_include_directories(${bindings_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../build-kpat/libkcardgame")
|
||||||
target_include_directories(${bindings_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame/include")
|
target_include_directories(${bindings_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame/include")
|
||||||
target_include_directories(${bindings_library} PRIVATE ${PYSIDE2_DIR}/include/)
|
target_include_directories(${bindings_library} PRIVATE ${PYSIDE2_DIR}/include/)
|
||||||
|
@ -125,6 +171,18 @@ target_include_directories(${bindings_library} PRIVATE "/usr/include/PySide2/QtG
|
||||||
target_include_directories(${bindings_library} PRIVATE ${PYSIDE2_DIR}/include/QtCore)
|
target_include_directories(${bindings_library} PRIVATE ${PYSIDE2_DIR}/include/QtCore)
|
||||||
target_include_directories(${bindings_library} PRIVATE ${shiboken_include_dir})
|
target_include_directories(${bindings_library} PRIVATE ${shiboken_include_dir})
|
||||||
target_include_directories(${bindings_library} PRIVATE ${CMAKE_SOURCE_DIR})
|
target_include_directories(${bindings_library} PRIVATE ${CMAKE_SOURCE_DIR})
|
||||||
|
target_include_directories(${sample_library} PRIVATE ${python_include_dir})
|
||||||
|
target_include_directories(${sample_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame")
|
||||||
|
target_include_directories(${sample_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../build-kpat/")
|
||||||
|
target_include_directories(${sample_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../build-kpat/libkcardgame")
|
||||||
|
target_include_directories(${sample_library} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../kpat/libkcardgame/include")
|
||||||
|
target_include_directories(${sample_library} PRIVATE ${PYSIDE2_DIR}/include/)
|
||||||
|
target_include_directories(${sample_library} PRIVATE "/usr/include/PySide2")
|
||||||
|
target_include_directories(${sample_library} PRIVATE "/usr/include/PySide2/QtCore/")
|
||||||
|
target_include_directories(${sample_library} PRIVATE "/usr/include/PySide2/QtGui/")
|
||||||
|
target_include_directories(${sample_library} PRIVATE ${PYSIDE2_DIR}/include/QtCore)
|
||||||
|
target_include_directories(${sample_library} PRIVATE ${shiboken_include_dir})
|
||||||
|
target_include_directories(${sample_library} PRIVATE ${CMAKE_SOURCE_DIR})
|
||||||
|
|
||||||
target_link_libraries(${bindings_library} PRIVATE ${shiboken_shared_libraries})
|
target_link_libraries(${bindings_library} PRIVATE ${shiboken_shared_libraries})
|
||||||
target_link_libraries(${bindings_library} PRIVATE ${sample_library})
|
target_link_libraries(${bindings_library} PRIVATE ${sample_library})
|
||||||
|
@ -134,6 +192,7 @@ set_property(TARGET ${bindings_library} PROPERTY PREFIX "")
|
||||||
set_property(TARGET ${bindings_library} PROPERTY OUTPUT_NAME
|
set_property(TARGET ${bindings_library} PROPERTY OUTPUT_NAME
|
||||||
"${bindings_library}${PYTHON_EXTENSION_SUFFIX}")
|
"${bindings_library}${PYTHON_EXTENSION_SUFFIX}")
|
||||||
|
|
||||||
|
generate_export_header(${sample_library} BASE_NAME libkcardgame)
|
||||||
install(TARGETS ${bindings_library} ${sample_library}
|
install(TARGETS ${bindings_library} ${sample_library}
|
||||||
LIBRARY DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}
|
LIBRARY DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
RUNTIME DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}
|
RUNTIME DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<typesystem package="Shiboken2QtExample">
|
<typesystem package="Shiboken2QtExample">
|
||||||
<load-typesystem name="typesystem_core.xml" generate="no"/>
|
<load-typesystem name="typesystem_core.xml" generate="no"/>
|
||||||
<object-type name="KCardDeck_wrapper">
|
<load-typesystem name="typesystem_gui.xml" generate="no"/>
|
||||||
|
<object-type name="MyKCardDeck">
|
||||||
|
<modify-function signature="get_card_pixmap(int)">
|
||||||
|
</modify-function>
|
||||||
</object-type>
|
</object-type>
|
||||||
</typesystem>
|
</typesystem>
|
||||||
|
|
|
@ -1,20 +1,15 @@
|
||||||
/* A file to test imorting C modules for handling arrays to Python */
|
/* A file to test imorting C modules for handling arrays to Python */
|
||||||
|
|
||||||
#include "kcardgame.hpp"
|
#include "kcardgame.hpp"
|
||||||
#include <QPixmap>
|
MyKCardDeck::MyKCardDeck()
|
||||||
#include "KCardDeck"
|
|
||||||
#include "KCardTheme"
|
|
||||||
class KCardDeck_wrapper
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
KCardDeck * d;
|
|
||||||
KCardDeck_wrapper()
|
|
||||||
{
|
{
|
||||||
|
int argc = 1;
|
||||||
|
char * argv[2]={"pysol",NULL};
|
||||||
|
app = new QGuiApplication(argc, argv);
|
||||||
d = new KCardDeck( KCardTheme(), nullptr);
|
d = new KCardDeck( KCardTheme(), nullptr);
|
||||||
}
|
}
|
||||||
QPixmap *get_card_pixmap(int i)
|
QPixmap *MyKCardDeck::get_card_pixmap(int i)
|
||||||
{
|
{
|
||||||
auto ret = new QPixmap(d->cardPixmap(i, true));
|
auto ret = new QPixmap(d->cardPixmap(i, true));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,18 +1,16 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
|
#include <QObject>
|
||||||
|
#include <QGuiApplication>
|
||||||
#include "KCardDeck"
|
#include "KCardDeck"
|
||||||
#include "KCardTheme"
|
#include "KCardTheme"
|
||||||
class KCardDeck_wrapper
|
class Q_DECL_EXPORT MyKCardDeck: public QObject
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
QGuiApplication* app;
|
||||||
KCardDeck * d;
|
KCardDeck * d;
|
||||||
KCardDeck_wrapper()
|
explicit MyKCardDeck();
|
||||||
{
|
public slots:
|
||||||
d = new KCardDeck( KCardTheme(), nullptr);
|
Q_DECL_EXPORT QPixmap *get_card_pixmap(int i);
|
||||||
}
|
|
||||||
QPixmap *get_card_pixmap(int i)
|
|
||||||
{
|
|
||||||
auto ret = new QPixmap(d->cardPixmap(i, true));
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -5,11 +5,14 @@
|
||||||
# https://stackoverflow.com/questions/22583035
|
# https://stackoverflow.com/questions/22583035
|
||||||
# Thanks!
|
# Thanks!
|
||||||
|
|
||||||
import cairo
|
from PySide2.QtGui import QPixmap # noqa: F401
|
||||||
|
|
||||||
from gi import require_version
|
from Shiboken2QtExample import MyKCardDeck
|
||||||
require_version('Rsvg', '2.0')
|
|
||||||
from gi.repository import Rsvg # noqa: E402
|
import cairo
|
||||||
|
# from gi import require_version
|
||||||
|
# require_version('Rsvg', '2.0')
|
||||||
|
# from gi.repository import Rsvg # noqa: E402
|
||||||
|
|
||||||
import pysnooper # noqa: E402
|
import pysnooper # noqa: E402
|
||||||
|
|
||||||
|
@ -21,7 +24,8 @@ class SVGManager:
|
||||||
"""docstring for SVGManager"""
|
"""docstring for SVGManager"""
|
||||||
def __init__(self, filename):
|
def __init__(self, filename):
|
||||||
self.filename = filename
|
self.filename = filename
|
||||||
self.svg = Rsvg.Handle().new_from_file(filename)
|
# self.svg = Rsvg.Handle().new_from_file(filename)
|
||||||
|
self.d = MyKCardDeck()
|
||||||
|
|
||||||
# Taken from https://stackoverflow.com/questions/44471795
|
# Taken from https://stackoverflow.com/questions/44471795
|
||||||
# Under MIT License - thanks.
|
# Under MIT License - thanks.
|
||||||
|
@ -39,6 +43,7 @@ class SVGManager:
|
||||||
return img
|
return img
|
||||||
|
|
||||||
def render_fragment(self, id_, width, height):
|
def render_fragment(self, id_, width, height):
|
||||||
|
return Image.fromqpixmap(self.d.get_card_pixmap(6))
|
||||||
id__ = '#' + id_
|
id__ = '#' + id_
|
||||||
"""docstring for render_"""
|
"""docstring for render_"""
|
||||||
dims = self.svg.get_dimensions_sub(id__)[1]
|
dims = self.svg.get_dimensions_sub(id__)[1]
|
||||||
|
|
Loading…
Add table
Reference in a new issue