add QT5 support

This commit is contained in:
2020-07-01 16:23:51 +08:00
parent 9b1975a8a5
commit 165e95c0d5
9 changed files with 248 additions and 1 deletions

11
src/QT/CMakeLists.txt Normal file
View File

@@ -0,0 +1,11 @@
IF(BUILD_QT5_SUPPORT_LIB)
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Gui Widgets)
IF(WIN32)
add_library(CM.QT5Support STATIC QT5GuiApplication.cpp)
ELSE()
add_library(CM.QT5Support SHARED QT5GuiApplication.cpp)
ENDIF()
target_link_libraries(CM.QT5Support Qt5::Core Qt5::Gui Qt5::Widgets)
ENDIF(BUILD_QT5_SUPPORT_LIB)

View File

@@ -0,0 +1,18 @@
#include<hgl/platform/QT5Application.h>
#include<QApplication>
namespace hgl
{
QT5GuiApplication::QT5GuiApplication(QApplication *qa):qt_app(qa)
{
}
QT5GuiApplication::~QT5GuiApplication()
{
}
int QT5GuiApplication::exec()
{
return qt_app->exec();
}
}//namespace hgl

20
src/QT/QT5UnixUTF8.cpp Normal file
View File

@@ -0,0 +1,20 @@
#include<hgl/Console.h>
#include<hgl/platform/QT5Application.h>
#include<QApplication>
using namespace hgl;
int main(int argc,char **argv)
{
QApplication qt_app(argc,argv);
StringList<UTF8String> sl;
for(int i=0;i<argc;i++)
sl.Add(argv[i]);
ConsoleSystemInitInfo sii;
QT5GuiApplication app(&qt_app);
return QT5AppMain(sii,app,sl);
}

34
src/QT/QT5WinUCS2.cpp Normal file
View File

@@ -0,0 +1,34 @@
#include<hgl/Console.h>
#include<windows.h>
#include<hgl/platform/QT5Application.h>
#include<QApplication>
extern "C" int WINAPI wWinMain(HINSTANCE,HINSTANCE,wchar_t *cmd_line,int)
{
wchar_t **w_argv;
char **argv;
int argc;
w_argv = CommandLineToArgvW(cmd_line, &argc);
hgl::StringList<hgl::UTF16String> sl;
hgl::StringList<hgl::UTF8String> sl8;
argv = new char *[argc];
for (int i = 0; i < argc; i++)
{
sl.Add(w_argv[i]);
sl8.Add(hgl::to_u8(w_argv[i]));
argv[i] = sl8[i].c_str();
}
QApplication qt_app(argc,argv);
hgl::ConsoleSystemInitInfo sii;
hgl::QT5GuiApplication app(&qt_app);
delete[] argv;
return QT5AppMain(sii, app, sl);
}