Files
BudgetPro/README.md
T

96 lines
3.2 KiB
Markdown
Raw Normal View History

# BudgetPro
A Qt-based financial management and budgeting application with a ribbon-style interface.
## Overview
BudgetPro is a desktop application designed for managing company finances, budgets, products, and invoices. It features a modern ribbon interface similar to Microsoft Office applications, built using Qt Widgets and the SARibbon library.
## Key Features
- **Company Management**: Create and manage multiple companies/enterprises
- **Product Catalog**: Maintain a database of products/services with pricing
- **Third-Party Management**: Track suppliers and customers
- **Budget Planning**: Create hierarchical budgets with detailed breakdowns
- **Invoice Tracking**: Manage incoming and outgoing invoices
- **Data Visualization**: Tree views for hierarchical financial data
- **Custom Editors**: Specialized delegates for different data types (combobox, rich text, etc.)
## Technical Stack
- **Framework**: Qt 6 (Widgets module)
- **UI Library**: SARibbon for ribbon-style interface
- **Database**: SQL backend (via custom sqltable.h)
- **Build System**: QMake (.pro file)
- **Language**: C++11
## Project Structure
```
BudgetPro/
├── main.cpp # Application entry point
├── mainwindow.h/cpp # Main window with ribbon interface
├── gui/ # GUI forms and components
│ ├── form*.ui/h/cpp # Various data entry forms (budget, product, etc.)
│ └── SARibbon/ # Ribbon library components
├── widget/ # Custom widgets and delegates
├── utils/ # Utility classes and helpers
├── data/ # Data access layer (sqltable.h)
└── resources/ # Qt resource file (icons, stylesheets, etc.)
```
## Getting Started
### Prerequisites
- Qt 6 development framework
- C++ compiler with C++11 support
- Make/build tools
### Building
```bash
# Using qmake
qmake BudgetPro.pro
make
# Or using Qt Creator
# Open BudgetPro.pro in Qt Creator and build
```
### Running
```bash
./BudgetPro # Linux/macOS
BudgetPro.exe # Windows
```
## Data Management
The application uses a SQL database for persistent storage. Database initialization and schema management are handled through the `sqltable.h` interface.
## Custom Components
BudgetPro includes several custom Qt components:
- `QMTreeView`: Enhanced tree view for hierarchical data
- Custom delegates for:
- Combobox editing in tables
- Rich text rendering/editing
- Numeric input with formatting
- Item numbering in hierarchical views
- Popup tables for complex selection
- `TreeModel`: Custom model for tree-structured data
- `AvatarWidget`: For displaying user/entity avatars
## Extending the Application
To add new features:
1. Create new form classes inheriting from `formBase`
2. Design UI forms using Qt Designer (.ui files)
3. Implement data access methods using the existing DAO patterns
4. Add ribbon buttons/actions in MainWindow to access new features
5. Register new forms in the main window's workspace management
## License
This project is based on Qt examples and may be subject to Qt's licensing terms. Please check individual file headers for specific copyright and licensing information.