A modern cross-platform file system explorer with built-in text editor, built with Qt Quick/QML.
- File Explorer - Navigate the file system with tree view structure
- Text Editor - Built-in editor with line number highlighting
- Modern UI - Responsive interface with custom Qt Quick components
- Frameless Window - Modern frameless design with custom window controls
- Text Editing - Full support for Cut/Copy/Paste/Undo operations
- Display Settings:
- Toggle line numbers display (Ctrl+L)
- Font scaling (Ctrl+Plus/Ctrl+Minus)
- Toggle between full and short file path
- Keyboard Shortcuts - Full support for standard key combinations
- Windows
- macOS
- Linux
Note: Android and iOS are not supported
- Qt 6.8 or newer
- CMake 3.16 or newer (for CMake build)
- qmake (for qmake build, optional)
- Compiler with C++17 support or newer
- Qt6::Core
- Qt6::Gui
- Qt6::Quick
- Qt6::QuickControls2
- Qt6::Svg
# Clone the repository
git clone https://github.com/sile350/QtFileSystemExplorer.git
cd filesystemexplorer
# Create build directory
mkdir build
cd build
# Configure the project
cmake ..
# Build the project
cmake --build .
# Optional: install the application
cmake --install .# Clone the repository
git clone https://github.com/sile350/QtFileSystemExplorer.git
cd filesystemexplorer
# Create Makefile
qmake filesystemexplorer.pro
# Build the project
make
# Run the application
./filesystemexplorer- Open Qt Creator
- Select
FileβOpen File or Project - Open the
CMakeLists.txtorfilesystemexplorer.profile - Configure the project with the desired Qt Kit
- Click
BuildβBuild Project
# Run with home directory (default)
./filesystemexplorer
# Run with specified initial directory
./filesystemexplorer /path/to/directory| Action | Key Combination |
|---|---|
| Increase Font | Ctrl++ (or Ctrl+=) |
| Decrease Font | Ctrl+- |
| Toggle Line Numbers | Ctrl+L |
| Cut | Ctrl+X |
| Copy | Ctrl+C |
| Paste | Ctrl+V |
| Select All | Ctrl+A |
| Undo | Ctrl+Z |
| Exit | Ctrl+Q |
- File Navigation: Use the sidebar with folder icon to browse the file system
- File Viewing: Click on any text file to view its contents
- Editing: You can edit file contents in the editor (changes are not saved to disk)
- Resizing: Drag the dividers between panels to adjust sizes
filesystemexplorer/
βββ main.cpp # Application entry point
βββ Main.qml # Main QML component
βββ filesystemmodel.h/cpp # File system model
βββ linenumbermodel.h/cpp # Line number model
βββ qml/ # QML components
β βββ Colors.qml # Color scheme (singleton)
β βββ Editor.qml # Text editor
β βββ FileSystemView.qml # File system view
β βββ Sidebar.qml # Navigation sidebar
β βββ MyMenu.qml # Menu component
β βββ MyMenuBar.qml # Menu bar
β βββ ResizeButton.qml # Window resize button
β βββ WindowDragHandler.qml # Window drag handler
β βββ About.qml # About dialog
βββ icons/ # SVG icons
βββ doc/ # Documentation
βββ CMakeLists.txt # CMake configuration
βββ filesystemexplorer.pro # qmake configuration
Inherits from QFileSystemModel, provides:
- File reading with MIME type checking
- Current line number detection in editor
- Root directory management
- File size limitation (up to 2 MB)
Efficient model for displaying line numbers in the editor:
- Dynamic row addition/removal
- Optimized performance for large files
- Custom Controls - Styled menu and button components
- Responsive Layout - Using
SplitViewfor resizable panels - Frameless Window - Custom drag handler for window movement
Contributions are welcome! Please:
- Fork the repository
- Create a branch for your feature (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is distributed under the BSD-3-Clause license. See the LICENSE file for details.
Based on the example from Qt Company Ltd.
- Maximum readable file size: 2 MB
- Only text files are supported (determined by MIME type)
- File editing occurs only in memory (not saved to disk)
- π User Guide - Detailed guide
- β FAQ - Frequently asked questions
- π¨ Building Guide - Detailed build instructions
- ποΈ Architecture - Project design
- π Style Guide - Coding standards
- π Resources - Useful links and materials
- π Documentation Index - Complete documentation list
If you have questions or suggestions, please create an issue in the repository.
- Qt Company Ltd. for the original example
- Qt community for excellent documentation and support
- All project contributors
Note: This is an educational project demonstrating Qt Quick/QML capabilities for creating modern desktop applications.
If this project was useful to you, give it a β on GitHub! It motivates us to develop the project further.
