commit 5f93e8caf6d3084e9324b21a8ecd008e0bd838e6 Author: sleepwithoutbz Date: Wed Sep 17 01:17:26 2025 +0800 Init commit. diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..c59111e --- /dev/null +++ b/.clang-format @@ -0,0 +1,37 @@ +BasedOnStyle: LLVM + +# 语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProto +Language: Cpp + +# tab宽度 +TabWidth: 4 + +# 使用tab字符: Never, ForIndentation, ForContinuationAndIndentation, Always +UseTab: Never + +# 每行字符的限制,0表示没有限制 +ColumnLimit: 100 + +# 访问说明符(public、private等)的偏移 +AccessModifierOffset: -4 + +# 缩进case标签 +IndentCaseLabels: false + +# 要使用的预处理器指令缩进样式 +IndentPPDirectives: BeforeHash + +# 缩进宽度 +IndentWidth: 4 + +# 函数返回类型换行时,缩进函数声明或函数定义的函数名 +IndentWrappedFunctionNames: false + +# 连续赋值时,对齐所有等号 +AlignConsecutiveAssignments: true + +# 连续声明时,对齐所有声明的变量名 +AlignConsecutiveDeclarations: true + +# 用于在使用反斜杠换行中对齐反斜杠的选项 +AlignEscapedNewlines: Left diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..87c29d6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,85 @@ +# This file is used to ignore files which are generated +# ---------------------------------------------------------------------------- + +*~ +*.autosave +*.a +*.core +*.moc +*.o +*.obj +*.orig +*.rej +*.so +*.so.* +*_pch.h.cpp +*_resource.rc +*.qm +.#* +*.*# +core +!core/ +tags +.DS_Store +.directory +*.debug +Makefile* +*.prl +*.app +moc_*.cpp +ui_*.h +qrc_*.cpp +Thumbs.db +*.res +*.rc +/.qmake.cache +/.qmake.stash + +# qtcreator generated files +*.pro.user* +*.qbs.user* +CMakeLists.txt.user* + +# xemacs temporary files +*.flc + +# Vim temporary files +.*.swp + +# Visual Studio generated files +*.ib_pdb_index +*.idb +*.ilk +*.pdb +*.sln +*.suo +*.vcproj +*vcproj.*.*.user +*.ncb +*.sdf +*.opensdf +*.vcxproj +*vcxproj.* + +# MinGW generated files +*.Debug +*.Release + +# Python byte code +*.pyc + +# Binaries +# -------- +*.dll +*.exe + +# Directories with generated files +.moc/ +.obj/ +.pch/ +.rcc/ +.uic/ +/build*/ + +.cache/ +compile_commands.json diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ddf8f76 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,50 @@ +cmake_minimum_required(VERSION 3.16) + +project(cbh 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(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Core Gui) +find_package(Qt6 REQUIRED COMPONENTS Widgets Core Gui) + +# 导出src下的cpp文件 +file(GLOB_RECURSE SRC_FILES CONFIGURE_DEPENDS src/*.cpp) + +qt_add_executable(cbh + MANUAL_FINALIZATION + ${SRC_FILES} +) + +target_link_libraries(cbh PRIVATE + Qt6::Widgets + Qt6::Core + Qt6::Gui +) + +# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. +# If you are developing for iOS or macOS you should consider setting an +# explicit, fixed bundle identifier manually though. +if(${QT_VERSION} VERSION_LESS 6.1.0) + set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.cbh) +endif() +set_target_properties(cbh PROPERTIES + ${BUNDLE_ID_OPTION} + MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} + MACOSX_BUNDLE TRUE + WIN32_EXECUTABLE TRUE +) + +include(GNUInstallDirs) +install(TARGETS cbh + BUNDLE DESTINATION . + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) + +qt_finalize_executable(cbh) diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..5f9b5c5 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,9 @@ +#include "window.h" +#include + +int main(int argc, char *argv[]) { + QApplication a(argc, argv); + MainWindow w; + w.show(); + return a.exec(); +} diff --git a/src/window.cpp b/src/window.cpp new file mode 100644 index 0000000..04ec1f4 --- /dev/null +++ b/src/window.cpp @@ -0,0 +1,5 @@ +#include "window.h" + +MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {} + +MainWindow::~MainWindow() {} diff --git a/src/window.h b/src/window.h new file mode 100644 index 0000000..1e977dd --- /dev/null +++ b/src/window.h @@ -0,0 +1,11 @@ +#pragma once + +#include + +class MainWindow : public QMainWindow { + Q_OBJECT + +public: + MainWindow(QWidget *parent = nullptr); + ~MainWindow(); +};