Skip to main content

Creating GUIs in Python for Digital Humanities Projects

This lesson demonstrates how to implement a Graphical User Interface (GUI) using Python. A GUI is an expected feature of most modern applications, but many users lack the necessary computing skills to execute Python scripts or operate terminal/command line applications. Distributing applications that use GUIs helps support the greatest number of other historians to benefit from the applications you develop. This tutorial focuses on the three steps involved in creating modern-looking and useable applications: designing a GUI, implementing a GUI within an application, and creating an executable file to distribute the application.

We will program a GUI to deal with a problem commonly encountered by historians: merging PDF files. Historians often find themselves with various PDF files that are logically connected, and that would be simpler to use for research or collaboration if they were merged into a single document. Many archives on the internet only allow users to download one page at a time, rather than an entire document. Another use-case scenario arises when historians only download the pages they need and skip intervening pages. Or, when historians at physical archives take digital pictures of only certain documents, rather than the entire file. At the end of their archival visit, they find that they have a large number of individual images, of which many should be part of one document or file. Oftentimes, internet archives or digital cameras name these files in conventional and logical ways (e.g. img_001, img_002, img_003). Our Python script will provide a simple drag-and-drop interface to move these files into the application and a single button press will merge them into one document.

In summary, this lesson uses Python to create a program with a GUI interface that can merge multiple PDF documents into a single PDF file. The main goal is to learn the basics of creating GUIs.

Reviewed by:

  • Telma Peura
  • Liz Fischer

Learning outcomes

By the end of this lesson, you will be able to:

  • Design a GUI using proven design principles of user-friendliness
  • Create a GUI using Qt Designer
  • Implement a GUI within a Python script
  • Build a distributable application version of your script
Interested in learning more?

Check out this lesson on Programming Historian's website

Go to this resource

Cite as

Christopher Goodwin (2023). Creating GUIs in Python for Digital Humanities Projects. Version 1.0.0. Edited by Yann Ryan. ProgHist Ltd. [Training module]. https://doi.org/10.46430/phen0107

Reuse conditions

Resources hosted on DARIAH-Campus are subjects to the DARIAH-Campus Training Materials Reuse Charter

Full metadata

Title:
Creating GUIs in Python for Digital Humanities Projects
Authors:
Christopher Goodwin
Domain:
Social Sciences and Humanities
Language:
en
Published to DARIAH-Campus:
9/11/2024
Originally published:
3/23/2023
Content type:
Training module
Licence:
CCBY 4.0
Sources:
Programming Historian
Topics:
Python, Data management
Version:
1.0.0