Sitemap
Articles
- Introduction to the QGraphics framework
- Build a Translation Application Using Tkinter and OpenAI
- PyQt6 & PySide6 Books updated for 2024
- Introduction to the QGraphics framework
- Q&A: How Do I Display Images in PySide6?
- Drag & Drop Widgets with PySide6
- Working With Python Virtual Environments
- Which Python GUI library should you use?
- Plotting With PyQtGraph
- Q&A: How Do I Display Images in PyQt6?
- Drag & Drop Widgets with PyQt6
- QLineEdit
- Plotting With PyQtGraph
- How to Create a Custom Title Bar for a PyQt Window
- How to Restore the Window's Geometry in a PyQt6 App
- How Trademarks Affect Open Source Software
- Customizing Your Tkinter App's Windows
- Getting Started With Kivy for GUI Development
- How to Restore the Window's Geometry in a PyQt5 App
- PyQt6 Book now available in Korean: 파이썬과 Qt6로 GUI 애플리케이션 만들기
- Input Validation in Tkinter GUI Apps
- PyQt vs. Tkinter — Which Should You Choose for Your Next GUI Project?
- Getting Started With Git and GitHub in Your Python Projects
- Handle command-line arguments with PyQt6/PySide6
- Working With Classes in Python and PyQt
- How to Create a Custom Title Bar for a PyQt5 Window
- Can You Charge for Open-Source Software?
- QCheckBox
- QPushButton
- Using the Place Geometry Manager in Tkinter
- Using the Grid Layout Manager in Tkinter
- Using the Pack Layout Manager in Tkinter
- Getting started with VS Code for Python
- Plotting with Matplotlib
- Create Buttons In Tkinter
- Plotting with Matplotlib
- Q&A: Why do I need to pass sys.argv or [] when creating an instance of QApplication?
- Use Tkinter To Design GUI Layout
- Plotting with PyQtGraph
- Understanding the GPL and "Copyleft"
- The Basics of Software Copyrights
- Create a GUI Using Tkinter and Python
- Packaging PyQt6 applications into a macOS app with PyInstaller
- Install Qt Designer Standalone
- PyQt6, PySide6, PyQt5 and PySide2 Books -- updated for 2022!
- Packaging PySide6 applications into a macOS app with PyInstaller
- Packaging PyQt5 applications for Linux with PyInstaller & fpm
- Create Radiobuttons & Checkbuttons In Tkinter
- Displaying tabular data in Qt ModelViews
- Packaging PySide6 applications for Windows with PyInstaller & InstallForge
- Packaging Tkinter applications for Windows with PyInstaller & InstallForge
- The ModelView Architecture
- Packaging PyQt5 applications into a macOS app with PyInstaller
- PyQt5 vs PyQt6
- PySide2 vs PySide6
- Using Postgres with Qt & Python on Windows, fixing QPSQL driver not loaded
- Packaging PyQt5 applications for Windows with PyInstaller & InstallForge
- PySide6 Signals, Slots & Events
- PySide6 Layouts
- Drag & Drop Widgets with PySide2
- Drag & Drop Widgets with PyQt5
- PySide6 Dialogs and Alerts
- Animating custom widgets with QPropertyAnimation
- The QResource System
- PyQt6 Signals, Slots & Events
- Using QProcess to run external programs
- Packaging PyQt6 applications for Windows with PyInstaller & InstallForge
- Add scrollable regions with QScrollArea
- Add scrollable regions with QScrollArea
- Simple threading in PyQt/PySide apps with .start() of QThreadPool
- Creating additional windows
- PyQt6 Layouts
- Using QProcess to run external programs
- PyQt6 Dialogs and Alerts
- Creating your first app with PySide6
- PySide6 Toolbars & Menus — QAction
- Creating your first app with PyQt6
- Creating additional windows
- PySide6 Widgets
- Animations and Transformations with QtQuick
- Animations and Transformations with QtQuick
- PyQt6 Toolbars & Menus — QAction
- Transmitting extra data with Qt Signals
- System tray & Mac menu bar applications
- Embedding custom widgets from Qt Designer
- Creating Dialogs With Qt Designer
- Packaging PySide2 applications for Windows with PyInstaller & InstallForge
- PyQt6 Widgets
- QComboBox
- Search a QTablewidget and select matching items
- Q&A: How to show a custom cursor on a PyQtGraph plot?
- Q&A: How to fix widgets appearing as separate windows?
- Embedding custom widgets from Qt Designer
- Creating Dialogs With Qt Designer
- Multithreading PySide6 applications with QThreadPool
- Running Python script with QProcess after freeze
- Creating searchable widget dashboards
- Introduction to the QGraphics framework
- Introduction to the QGraphics framework
- QDateEdit widget does not respond to setSelectedSection
- Q&A: How can I enable editing on a QTableView?
- Tableview delete rows works only one time
- Unable to implement GUI interface to Face Recognition script in PyQt5
- PySide6.QtCore.QThreadPool().start() (only one signature)
- Create a tree using threads
- QTimer, threads, and non-gui events
- QTableView Drag and Drop - Drop Prohibited Icon
- Animating custom widgets with QPropertyAnimation
- Animating custom widgets with QPropertyAnimation
- Creating custom GUI widgets in PyQt6
- Creating custom GUI widgets in PySide6
- Using QResource to package data files with PyInstaller
- Laying Out Your PySide6 GUIs With Qt Designer
- Strange error in PyQt6 (not rendering radial gradients)
- How to refresh a treeview?
- Why can't the button be set size and other styles?
- Create applications with QtQuick
- Create applications with QtQuick
- QDataWidgetMapper with relational model and qcomboxes working of relations
- QPainter and Bitmap Graphics
- QPainter and Bitmap Graphics
- QPainter and Bitmap Graphics
- Is it possible to access system env vars in Qt?
- The ModelView Architecture
- Actions in one thread changing data in another
- Accessing TableView from second QML file with PySide2
- GUI freezing for second run
- Tableview with pagination and edit save button every row
- How is QMdiArea supposed to be used?
- Can you develop web apps with pyQT? if not what is best for python web development?
- Editing QTableView cells
- Matplotlib with QtQuick (QML)
- Transmitting extra data with Qt Signals
- Install PyQt6 on Ubuntu Linux
- Install PyQt6 on macOS
- Install PySide2 on Ubuntu Linux
- Install PySide6 on Ubuntu Linux
- PyQt5 QtBluetooth examples or documentation
- QWidget::setLayout: Attempting to set QLayout "" on Window "", which already has a layout
- Inotify_add_watch error when deleting in Qt but not command line
- PySide6 tutorial now available
- Creating your first app with PySide2
- AttributeError: type object 'Qt' has no attribute 'Alignment'
- selectRow after insertRow not working
- Writie a PyQT5 Plugin in QGIS (Check ComboBox Value)
- Raspberry pi 4 qmediaplayer
- Navigating QSqlTableModel and QTableView in very large databases
- Problems with antivirus software and PyInstaller
- Connect Qprocess to already running program
- Display data with different colunm sizes in a TableModel?
- ModuleNotFoundError: No module named 'layout_colorwidget'
- Animations and Transformations with QtQuick
- Animations and Transformations with QtQuick
- Constantly print Subprocess output while process is running
- Postpone the execution of sequential processes until previous thread emit the result
- Decimal seperator: QtGui.QDoubleValidator in PyQt6
- Avoid gray background for selected icons
- PyInstaller 4.2 & PySide6
- Using pyqtgraph how to create grouped bar graph
- QSqlRelationalTableModel, QSortFilterProxyModel and QDataWidgetMapper
- Use a Qrunnable to handle the execution of other QRunnables
- Combo Box delegate disappears with QSortFilterProxyModel applied
- Multithreading PyQt6 applications with QThreadPool
- First steps with Qt Designer
- First steps with Qt Designer
- Custom widgets without a gap between each widget
- How to clear/remove ComboBox delegate data from QTableView
- Pandas with numpy array
- PySide6: Is the QWebEngineView available?
- Show only Icon in QTableview cell
- Adding QComboBox to a QTableView and getting/setting values after creation
- Errors when running .exe produced by pyinstaller with conda
- How to report text corrections for the book?
- PyQt6 Book now available: Create GUI Applications with Python & Qt6
- Newbie Failing at deployment: py2app (and fbs) failure!
- Using QResource to package data files with PyInstaller
- Delay in signal from thread
- Sequential programming, threads, causality, and the nature of time
- Create applications with QtQuick
- Create applications with QtQuick
- QSettings Usage
- QTableView Align Currency Column Right with QStyledItemDelegate
- Drag&drop the treenode in custom tree model to reorder items in PyQt5
- How to debug: QAbstractTableModel subclass does not call flags()
- How to drag&drop SVG elements?
- My pyqt5 application freezes when I don't use partial function
- Right click “open with”
- Change color in QProgressBar delegate
- System tray & Mac menu bar applications
- Custom style for menu items
- Pyside6: click text on QPixMap
- Create a Settings window
- QSqlRelationalTableModel issue updating a row
- How to get the PyQt version number?
- What modules are missing from PySide6 & PyQt6?
- PyQt6 & PySide6 Book now available!
- What replaces PyQt5.QtMultimedia / PySide2.QtMultimedia in PyQt6 / PySide6, if anything?
- PySide6 Book now available: Create GUI Applications with Python & Qt6
- PyQt6 vs PySide6
- How to run parallel process along with QProcess thread
- BackGroundColor for row in QTableView
- setCurrentIndex() says it receives NoneType
- treeView.selectedIndexes() returns same item multiple times
- Overriding acceptNavigationRequest
- QTableWidget for List of Dict
- What happens after defining `app`, but before executing it?
- PDF Report generator
- Packaging PySide2 applications into a macOS app with PyInstaller
- Creating new windows on Qtdesigner based .py files
- CSS Selector for widget Class
- Import outside toplevel (bad or acceptable?)
- When will there be a new version of Creating GUI Applications for PyQt6 and PySide6?
- Transparent TextBrowser
- How to assign a resource to QCombox?
- How to create a filter (search Bar) for a qtablewidget
- How to pass argument to user defined function in Qprocess
- Displaying tabular data in Qt6 ModelViews
- Displaying tabular data in Qt ModelViews
- Using QResource to package data files with PyInstaller
- How to Add Widget after loading QtDesiger ui file?
- Creating searchable widget dashboards
- How to get/set the position of the scroll area?
- Issue with tabs
- Problem when using Spyder
- HTML, CSS and JS in a Desktop App... Qt WebEngine vs. Electron vs.?
- Install PyQt6 on Windows
- Install PySide6 on Windows
- Miscellanious questions - mainly: What can i do with my pyrcc5'ed .qrc-file
- Segmentation Fault With QProcess Manager
- QSystemTrayIcon example
- Dll loading error with pyinstaller + ctypes.cdll
- QTimer expectations
- Laying Out Your PyQt6 GUIs With Qt Designer
- Changing ticks in pyqtgraph objects to strings
- QTreeView tutorial
- Toggle & AnimatedToggle
- QTabWidget selected tab text blank
- Decimal seperator: QtGui.QDoubleValidator
- Launching PyQt apps in macOS at login
- How to set working directory of QProcess
- How to use "File->New" to create a new (duplicate) window of current form
- Plottimg pyqtgraph two Y-Axes
- Animating custom widgets with QPropertyAnimation
- The QResource System
- How to show cursor position in pyqtgrapth embedded in pyqt5
- QWebEngineView window is blank and non-responsive upon launching
- QTableWidget is crashing when i am doing updating table every 1 millisecond once
- Should I decorate slots in Pyside2 and if so how?
- RuntimeError: The current Numpy installation fails to pass a sanity check due to a bug in the windows runtime
- Using QProcess to run external programs
- Image viewer using Qt Model View architecture
- QMediaPlayer does provide a stream of the audio data which is playing
- Adding new Tabs in TabWidget appears as a seperate window when tab is selected
- Add scrollable regions with QScrollArea
- setAlignment(QtCore.Qt.AlignCenter) method is not working as expected
- Howto disable webrtc webview for pyqt5
- setStylesheet - get colour from default scheme
- Is QSound no longer available?
- Opening links in a new window with QWebEngineView
- Real Time Change of Widgets?
- The QResource System
- Getting TypeError:
() missing 1 required positional argument: 'checked' - Mac Big Sur config to open windows in Terminal with PyQt5 or PySide2?
- QWebEngineView change anchor behavior
- Use mouse drag to change the width of a rectangle?
- Using QProcess to run external programs
- Retrieve underlying data object from QAbstractTableModel
- MAC OSX redraw issues
- Size of Matplotlib's navigation toolbar (too large by default compared to the other widgets)
- Widget size and placement in the tabs of a QTabWidget
- File Image Browser App with thumbnails
- Authentication and Authorization with PyQt5 or PySide2
- Concurrent Futures Example
- Help with Creating Your First App Tutorial
- I know that the text in the QListWidget control can be displayed in the center, how can the icons in the QListWidget control be displayed in the center
- PyQt thread execution timeout in the background
- Installation via Pip + Styling
- Licensing between PyQt5 and PySide2
- Recommended way to install Pyqt5 with fbs python Macos
- On Mac, PySide2 Designer Help & other commands don't work
- PyInstaller macOS issue: QCombobox not refreshing
- PyInstaller on macOS frustration
- Creating a new widget, very heavy paintEvent
- Using community qt creator at workplace
- Plotting with PyQtGraph
- Programmatically select multiple rows in Qtableview
- PyCharm issue, need to restart IDE when code changes
- Pyqt5 QSettings. how to use QSettings
- Can´t integrate QTabWidget into a Layout besides other one´s
- Clean up on exit application
- Iterate through the contents of rows selected from a QTableView QSqlQueryModel?
- Pass multiple models to QListView
- PySide2 Qt.TextAlignmentRole bug
- How to search through a pyqt5 tablewidget and return search results
- How to make QSplitter responds to double clicking?
- Plotting with Matplotlib
- Transmitting extra data with Qt Signals
- Creating Dialogs With Qt Designer
- Plotting with Matplotlib Tutorial -- Adding File Option
- PyQt5 runjavascript with QtWebEngine
- Image inserted in label using designer does not load from python
- Creating additional windows
- Process finishes with weird exit code (Very basic dialog app)
- How to create online offline database together
- PyQt5 MYSQL driver not loaded windows
- Creating Dialogs With Qt Designer
- Help in understanding proper Return Structure
- How to compile pyqt5 or pyside2 code with nuitka
- Where do I begin in creating a scheduling app like this in QT Designer
- ModuleNotFoundError: No module named 'qtmodern'
- Q&A: QProcess.start() is deprecated, what are the alternatives?
- How to display a loading animated gif while a code is executing in backend of my Python Qt5 UI?
- Is it just me or is QMediaplayer not working properly?
- Running sample code, but icon not show
- Save multiple plots to pdf
- Signal and Slot
- Creating searchable widget dashboards
- Linux Packaging Prefered Formats
- Progress track thread pool rather than each process
- Show() and hide() widget
- Creating additional windows
- Multi-Threading Do's and Don'ts
- Troubles with loading data when running from my IDE
- Class inheritace issue - syntax error
- QNetworkAccessManager https UnknownNetworkError when using pyside2
- QSqltable canFetchMore advice
- QTableWidget: How to remove subsequent rows on new row insert?
- How can I import a pyqtgraph histogram LUT item with .ui
- Always the default icon
- Change the color of the ProgressBar indicator text when it exceeds 50%
- Why is the Qt Creator used in the tutorial?
- Text when built with fbs in docker ubuntu 16 for dialogs is different
- Dialogs_2.py error when clicking button
- Question related to the thread Multithreading PyQt applications with QThreadPool
- Simultaneous scaling ViewBox elements
- QPainter CompositionMode or Interactive PseudoColor Mapping
- Error: (IM002) [Microsoft][ODBC Driver Manager]
- Cloud around the text in QTextEdit
- Exporting widgets and setting the position of to the top of the paper in pyqt5
- Creating a database data entry form with PyQt5
- Icon from pyqt5/pyside2 resources
- Impossible Translations
- Create GUI Applications with Python & Qt5, 4th Edition now available (PyQt5 & PySide2)
- Pyqt5 embed external program into qwidget
- PyQt vs PySide Licensing
- Remove and insertrow for Martin Fitzpatricks example
- Wizard Assistant Toolkit: Pyqt5 based app packaged fbs
- Pyqt5 gridlayout issues arranging stuffs non format
- Creating dynamic TextBox's
- graphWidget with PySide2
- Package compatability
- Creating custom GUI widgets in PySide2
- Debugging widgets not appearing in Qt applications
- Laying Out Your PySide2 GUIs With Qt Designer
- Calling value from model through pair of integers representing row and column
- Q&A: How do I display an Image in PySide2?
- QtChart vs Pyqtgraph
- Remeber last saved directory with QFileDialog
- Checkboxes in Table Views with custom model
- PySide2 Toolbars & Menus — QAction
- How to specify absolute paths for QIcon
- I developed a simple demo and packed it with pyinstaller
- Using command line arguments to open files with PyQt5 apps -- Windows file associations
- Importing the .ui form
- Interactive Audio Editor - plotting
- Structuring a Large PyQt Application
- How to Show Qmenu Title
- Add some explanation on sorting a QTableView
- Not an open source application: which one to use? PyQt5 or PySide2?
- Transmitting extra data with Qt Signals
- Display TABLE with QTableWidget
- PySide2 Layouts
- Unable to import anything from PySide2
- Drawing dots on top of image upon mouse clicks
- PySide2 Dialogs and Alerts
- PySide2 Signals, Slots & Events
- System tray examples not showing up on Windows 10
- PySide2 Widgets
- Is there a way to make a Model View Table automatically open to show the whole table?
- Issue exporting data with Pycharm
- Q&A: Are there any built-in QIcons?
- AttributeError: 'NoneType' object has no attribute '_dial'
- Crashing in QRunner threads with numpy
- Creating PySide2 UI without .ui / Qt Designer
- Dragging and dropping in rich text example app
- Fbs error Python 3.8
- GUI freezing while updating (result from QRunner)
- How to reference the app context from window on appcontext?
- Mainwindow.ui Error in fbs freeze
- Missing icons when running Notepad example on Raspberry Pi
- ModuleNotFoundError: No module named 'fbs_runtime'
- Opening a subwindow from a button event
- Packaged installer file sizes
- .parent() vs. parent class in PowerBar example
- QDialog blocking main thread?
- QWebEngine in Qt Designer
- Updating progressbar from QRunner
- Using fbs for packaging while creating the GUI with Qt Designer?
- Weather app multiple locations?
- Why are signals defined as class variables?
- Clearing the canvas in QPainter
- Coordinates on `QPainter`
- Elegant shutdown of running threads
- How can you pass additional args to a worker function?
- How to start/stop or pause running threads?
- Painter example Undo/Ctrl-Z
- Pause a running worker thread
- Resizing the QPainter canvas
- Threading dict not callable error
- What does @Slot() do?
- Why did the output on the QAbstractTableModel look so strange when I accidentally omitted "if role == Qt.DisplayRole:"?
- Q&A: How to check if a QLineEdit is empty?
- AttributeError module 'time' has no attribute 'clock'
- Add widgets in a kind of library show in the QT Designer
- AttributeError: 'MainWindow' object has no attribute 'onWindowTitleChange'
- Complex data in PyQt models
- Customizing size of a PyQtGraph
- .data() in ModelView models
- Dialogs question Accept/Cancel
- Matplotlib not taking whole of the window
- ModelView Autoselection
- Plotting time series data with PyQtGraph
- Problem packaging with PyInstaller
- Problem showing a widget (not Window)
- PyQtGraph error module 'time' has no attribute 'clock'
- PyQtGraph errors in Spyder/IPython
- PyQtGraph issue running in console
- PyQtGraph plotting over time
- Signals, Slots and Events: NameError: name 'QMainWindow' is not defined
- Spyder IDE gets stuck
- .ui files with fbs
- Writing for PyQt5 & PySide2
- PasswordEdit
- First steps with Qt Designer
- Implementing QPainter flood fill in PyQt5/PySide
- The ModelView Architecture
- Displaying tabular data in Qt5 ModelViews
- Creating searchable widget dashboards
- Q&A: How do I display an Image in PyQt5?
- Plotting with Matplotlib
- Laying Out Your PyQt5 GUIs With Qt Designer
- LearnPyQt — One year in, and much more to come.
- Add scrollable regions with QScrollArea
- System tray & Mac menu bar applications
- Embedding custom widgets from Qt Designer
- When To Use Pack, Place Or Grid In Tkinter
- Embedding custom widgets from Qt Designer
- Multithreading PySide2 applications with QThreadPool
- Goodforbitcoin, a Cryptocurrency market tracker
- Moonsweeper
- Simple Sales Tax Calculator
- PyQt5 vs PySide2
- Gradient
- EqualizerBar
- Creating custom GUI widgets in PyQt5
- QPainter and Bitmap Graphics
- The ModelView Architecture
- MacOS Mojave Dark Mode Support in PyQt 5.12.2
- PyQt5 Toolbars & Menus — QAction
- PyQt5 Dialogs and Alerts
- PyQt5 Layouts
- PyQt5 Signals, Slots & Events
- Creating your first app with PyQt5
- Install PyQt5 on Windows
- Install PySide2 on Windows
- Install Python on Windows
- Install Tkinter on Windows
- Install PyQt5 on Ubuntu Linux
- Install PyQt5 on macOS
- Install PyQt5 on Raspberry Pi
- Install PySide2 on macOS
- Install PySide6 on macOS
- Install Tkinter on Ubuntu Linux
- Install Tkinter on macOS
- PyQt5 Widgets
- First steps with Qt Designer
- NSAViewer, desktop Photobooth
- Raindar, desktop Weather App
- 7Pez, custom skinned Unzip
- Packaging PySide apps with fbs
- Megasolid Idiom, a Rich Text Editor
- Packaging PyQt5 apps with fbs
- Palette
- Calculon, a Desktop Calculator
- Brown Note, desktop Reminder
- Failamp, a Multimedia Player
- QtWebEngineWidgets, the new browser API in PyQt 5.6
- Tabbed web browsing
- System tray & Mac menu bar applications
- Mozzerella Ashbadger
- Adding application Help and About dialogs
- Adding navigational controls to a PyQt5 Web Browser
- Open and save HTML in a PyQt5 browser
- 15 Minute Apps
- Multithreading PyQt5 applications with QThreadPool
- No2Pads, a simple Notepad clone
- PyQtConfig
- PyQt5 support in Matplotlib
- ColorButton
Categories
Tags
- pyqt
- pyside6
- tkinter
- pyqt6
- pyqt5
- pyside2
- pyside
- licensing
- getting-started
- data-science
- pyqt6-data-science
- plotting
- pyside6-data-science
- qt-designer
- pyqt5-qt-designer
- pyqt6-qt-designer
- pyside2-qt-designer
- pyside6-qt-designer
- pyinstaller
- packaging
- tkinter-packaging
- databases
- pyqt6-packaging
- pyqt6-custom-widgets
- pyside6-packaging
- pyside6-concurrency
- pyqt6-concurrency
- qml
- pyside2-qml
- pyside6-qml
- pyside2-packaging
- foundation
- pyside6-foundation
- pyqt5-packaging
- pyqt6-foundation
- pyside2-custom-widgets
- pyside6-custom-widgets
- pyside2-getting-started
- pyside6-getting-started
- pyqt6-getting-started
- raspberry-pi
- pyqt6-qml
- pyqt5-qml
- pyqt5-getting-started
- pyqt5-data-science
- pandas
- pyside2-data-science
- pyqt5-custom-widgets
- pyside2-concurrency
- pyqt5-concurrency
- pyside2-foundation
- pyqt5-foundation
- pyqt5-raspberry-pi
- tkinter-foundation
- games
- pyqt5-games
- tkinter-getting-started
- desktop
- intermediate
Legacy URLs (redirected)
- Tabbed web browser in Python
- Python GUI calculator
- Desktop weather application Python GUI
- Python media player
- Desktop post-it notes application
- Unzip app with custom image skin
- Python notepad clone
- Python Rich text editor
- Build a Photobooth application with Python
- Python Minesweeper Game
- Simple Python web browser
- Python tabbed web browser
- Moonsweeper
- Simple Sales tax calculator
- Simple tax calculator
- Build desktop calculator
- Python GUI calculator
- Desktop weather application Python GUI
- Python media player
- Desktop post-it notes application
- Unzip app with custom image skin
- Python notepad clone
- Python Rich text editor
- Build a Photobooth application with Python
- Python Minesweeper Game
- Simple Python web browser
- Python tabbed web browser
- Moonsweeper
- Simple Sales tax calculator
- Simple tax calculator
- Build desktop calculator
- Python GUI calculator
- Desktop weather application Python GUI
- Python media player
- Desktop post-it notes application
- Unzip app with custom image skin
- Python notepad clone
- Python Rich text editor
- Build a Photobooth application with Python
- Python Minesweeper Game
- Simple Python web browser
- Python tabbed web browser
- Moonsweeper
- Simple Sales tax calculator
- Simple tax calculator
- Build desktop calculator