01b264fe97
- qdialog_showcase:wiki「6 对话框 QDialog」6.2–6.5 综合演示。含两套实现:
· Designer 表单版(dialog.{h,cpp,ui} + resources.qrc + source.gif,QMovie 播 GIF)
· 纯代码版(qt_dialog_showcase.cpp,单文件,QWidget 布满按钮逐个演示 QDialog 行为)
- lineedit_eye_toggle:子类化 QLineEdit,paintEvent 自绘小眼睛、mouseEvent 命中切换
echoMode,并与内置 clear button 动态避让(读 objectName=="clearButton" 子 widget 几何)。
含独立子目录 CMakeLists.txt 供单独打开(顶层 add_subdirectory 不递归)。
- file_io_demo:QFile/QTextStream/QDataStream/QFileInfo/QDir/QTextCodec/QJson 五主题
综合示例,每个按钮产出一个文件落到 demo_output/ 便于课堂手动查看。
构建注册:examples/CMakeLists.txt 用 add_teaching_example 注册前两个纯代码示例,
mandelbrot 多源文件单独 add_executable;calculator_mainwindow_qss 加 themes.qrc 与
AUTORCC;all_teaching_examples 依赖列表同步补齐。
附 lineedit_eye_toggle 设计文档(docs/superpowers/specs)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
31 lines
1.3 KiB
CMake
31 lines
1.3 KiB
CMake
# =============================================================================
|
|
# Qt5 文件操作教学示例 —— 独立 CMake 工程
|
|
#
|
|
# 本文件供「单独打开 / 独立构建」使用:
|
|
# cmake -S . -B build -DCMAKE_PREFIX_PATH=<Qt5.14.2> -DCMAKE_CXX_COMPILER=<g++>
|
|
# cmake --build build
|
|
#
|
|
# 仓库统一构建【不走】这里:顶层 CMakeLists.txt 只
|
|
# add_subdirectory(docs/teaching/examples) 且不递归,统一构建走
|
|
# examples/CMakeLists.txt 的 add_teaching_example,源文件同为
|
|
# qt_file_io_demo.cpp(零重复)。本目录不计入仓库「173 目标」计数。
|
|
#
|
|
# 说明:本工程为手写规范版(C++17 / cmake 3.16 / 无 ANDROID 噪音),
|
|
# 区别于其它子目录里 Qt Creator 自动导出的低质量模板。
|
|
# =============================================================================
|
|
cmake_minimum_required(VERSION 3.16)
|
|
|
|
project(qt_file_io_demo LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)
|
|
message(STATUS "Found Qt5 ${Qt5Core_VERSION_STRING} at ${Qt5Core_DIR}")
|
|
|
|
add_executable(qt_file_io_demo qt_file_io_demo.cpp)
|
|
target_link_libraries(qt_file_io_demo PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets)
|
|
target_compile_options(qt_file_io_demo PRIVATE -Wall -Wextra)
|