Day4 教学示例补三个:QDialog 综合 / QLineEdit 小眼睛 / 文件 IO(+顶层构建注册)
- 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>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# =============================================================================
|
||||
# QLineEdit 自绘小眼睛 / echo mode 切换 —— 独立 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_lineedit_eye_toggle.cpp(零重复)。本目录不计入仓库「173 目标」计数。
|
||||
#
|
||||
# 说明:本工程为手写规范版(C++17 / cmake 3.16 / 无 ANDROID 噪音),
|
||||
# 区别于其它子目录里 Qt Creator 自动导出的低质量模板。
|
||||
# =============================================================================
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(qt_lineedit_eye_toggle 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_lineedit_eye_toggle qt_lineedit_eye_toggle.cpp)
|
||||
target_link_libraries(qt_lineedit_eye_toggle PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets)
|
||||
target_compile_options(qt_lineedit_eye_toggle PRIVATE -Wall -Wextra)
|
||||
Reference in New Issue
Block a user