Files
BudgetPro/README.md
T

3.2 KiB

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 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.