3437103c285cb80dc4ebf3f9b444a21a315846ec
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
# Using qmake
qmake BudgetPro.pro
make
# Or using Qt Creator
# Open BudgetPro.pro in Qt Creator and build
Running
./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 dataAvatarWidget: For displaying user/entity avatars
Extending the Application
To add new features:
- Create new form classes inheriting from
formBase - Design UI forms using Qt Designer (.ui files)
- Implement data access methods using the existing DAO patterns
- Add ribbon buttons/actions in MainWindow to access new features
- 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.
Description
Languages
C++
87.7%
Makefile
3.7%
CSS
3.6%
CMake
1.6%
C
1.5%
Other
1.8%