// LATEST

在Qt中ElaWidgetTools的基础使用

介绍一下ElaWidgetTools的基础使用方法

ElaWidgetTools介绍

基于QT-Widget开发的FluentUI风格的组件库,同时提供不限于组件的常用集成功能;目前Main分支支持QT5.12以上所有版本(Linux为QT5.15以上),推荐版本为QT6.4.3和QT6.6.2;

在项目中使用

构建dll

ElaWidgetTools

Clone下来并使用QtCreater打开,项目是CMaker,所以说打开的是CMakeLists.txt

1

选择和你项目一致的版本,使用release构建

在根目录下即可得到elawidgettools.dll和elawidgettools.lib

添加到自己项目

在项目文件夹中创建lib文件夹和include文件夹

2

把elawidgettools.dll和elawidgettools.lib放到lib文件夹

把ElaWidgetTools-main\src\include中的文件放到include文件夹

接下来打开自己项目的cmakelists

首先要把include文件夹包含进来

include_directories(
    include
)

然后再add_executable中添加qrc

include/ElaWidgetTools.qrc

最后链接目标库,再target_link_libraries中添加

${CMAKE_CURRENT_SOURCE_DIR}/lib/elawidgettools.lib

大功告成,这是完整的cmakelist示例仅供参考:

cmake_minimum_required(VERSION 3.16)

project(Test VERSION 0.1 LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 REQUIRED Widgets Multimedia MultimediaWidgets NetWork)

set(PROJECT_SOURCES
        main.cpp
        mainwindow.cpp
        mainwindow.h
        mainwindow.ui
)

add_executable(${PROJECT_NAME} ${PROJECT_SOURCES}
    include/ElaWidgetTools.qrc #这里添加了
    res.qrc)
#这里添加了

include_directories(
    include
)

target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets Qt6::Multimedia Qt6::MultimediaWidgets Qt6::Network
    ${CMAKE_CURRENT_SOURCE_DIR}/lib/elawidgettools.lib#这里添加了

)

可以这样修改main.cpp来测试是否成功

//#include "mainwindow.h"

#include <QApplication>
#include "ElaApplication.h"
#include "ElaWindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    ElaApplication::getInstance()->init();
    ElaWindow w;
    w.show();
    return a.exec();
}

如果没问题的话应该会有这个界面
3

在项目中使用

窗口修改

.h中在添加头文件的基础上把

class MainWindow : public QMainWindow

修改为

class MainWindow : public ElaWidget 或者 ElaWindow

即可,widget和window看自己需求

当然cpp里也要修改为Ela

MainWindow::MainWindow(QWidget *parent)
    : ElaWindow(parent) //此处修改
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

之后需要在main.cpp中初始化

#include "mainwindow.h"

#include <QApplication>
#include "ElaApplication.h"


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    eApp->init(); //初始化
    return a.exec();
}

使用控件

控件的使用除了在cpp里创建外,部分控件(有继承关系的话)还可以用界面设计中的“提升为”功能。当然,不推荐这么做。

4

还没有评论

欢迎留下你的观点,保持交流的清晰和友好。