Wiki

Clone wiki

prida_one / design

Navigation | | | :---: | :---: | :---: | :---: Project Plan | Project Requirements | Project Design | README

Project Design

Revisions

Revision Date Description
1.4.0 7/15/16 Updates to the Qt Designs and the Class and Sequence Diagrams
0.5.1 9/23/15 Added Class Diagram & UC1 Sequence Diagram
0.1 6/11/15 Initial Write-Up

Qt Design Model

Qt is a modern user interface with the look and feel of a native system program. The design of the Qt user interface (UI) is handled by Qt Creator, an integrated development environment (IDE) for creating program-specific UI files. There are three UI files associated with this software:

  • about.ui
  • input_user.ui
  • mainwindow.ui

Below are screenshots of each UI file and a list of the Qt objects with a description of their purpose. For information on how to convert UI files to Python modules, see PyQt.

About

The About is a QDialog window that displays information regarding the software and project file.

Qt Design
Qt Type Qt Name Label Description
QLabel version_about <version> Displays the current software version
QLabel copy_about This software is freely available to the public for use. The public domain notice.
QLabel url_about bitbucket.org Hyperlink to the Prida README wiki
QLabel author_about <author> Displays the project file's user name
QLabel contact_about <contact> Displays the project file's user's email address
QLabel plants_about <no of plants> Displays the total number of plants (PIDs) in the project file
QLabel sessions_about <no of sessions> Displays the total number of sessions in the project file
QLabel photos_about <no of photos> Displays the total number of images in the project file
QTextEdit summary_about Displays the project file's summary text
QPushButton edit Edit Signals for editing the about fields
QDialogButtonBox buttonBox Close Closes the QDialog window

Input User

The Input User is a QDialog window that serves as an interface for inputing the project file's user name, contact email, and summary statement.

Qt Design
Qt Type Qt Name Label Description
QLineEdit user (first and last name) Entry field for user name
QLineEdit email (user@email.com) Entry field for user email
QTextEdit about (summary statement) Entry field for project summary

Main Menu

The Main Menu is the first view in mainwindow.ui and serves as a welcome screen and starting point for the user interaction with the software.

Qt Design Qt View
MAIN_MENU
Qt Type Qt Name Label Description
IDA welcome "Welcome to Prida" Display graphic
QPushButton new_hdf "Create" Create a new project file
QPushButton open_hdf "Open" Open an existing project file
QPushButton search_hdf "Search" Search existing project files
QPushButton re_configure "Replace" Replace the configuration file

Viewer

The Viewer is the second view in mainwindow.ui and serves as the main interface between the user and their project file's contents.

Qt Design Qt View
VIEW
Qt Type Qt Name Label Description
QPushButton menuButton "Menu" Return to main menu
QPushButton aboutButton "About" Overview the file contents
QPushButton saveButton "Save" Save compressed copy of current file
QLineEdit search "Search..." Filter view based on search words
QTreeView session_sheet
QTreeView / IDA sheet / ida
QTreeView img_select
QCommandLinkButton create_session "Image" Start a new imaging session
QCommandLinkButton perform_analysis "Analyze" Analyze root images
QCommandLinkButton import_data "Import" Add existing data to this file
QCommandLinkButton export_data "Extract" Save images and metadata to file
QCommandLinkButton make_edit "Edit" Edit a selected field

Input Session

The Input Session is the third view in mainwindow.ui and serves as the user interface for inputing new or editing existing plant and session metadata.

Qt Design Qt View
INPUT_EXP
Qt Type Qt Name Label Description
QLineEdit c_pid "Plant ID" Unique plant identifier
QLineEdit c_usda_plants "USDA PLANTS ID" Agricultural genus species database key
QLineEdit c_gen_sp "Genus Species" Plant scientific name
QLineEdit c_line "Line" Plant cultivar type
QLineEdit c_rep_num "Rep" Experiment repetition identifier
QLineEdit c_tubid "Tub ID" Experiment tub identifier
QLineEdit c_germdate "Germination Date" Date plant was germinated
QLineEdit c_transdate "Transplant Date" Date plant was transplanted
QLineEdit c_treatment "Treatment Type" Experimental treatment
QLineEdit c_damage "Damage" Plant damage description
QLineEdit c_plant_notes "Plant Notes" Additional important information
QLineEdit c_media "Growth Media" Media in which the plant was grown
QLineEdit c_tubsize "Tub Size" Size of tub in which plant was grown
QLineEdit c_nutrient "Nutrient" Plant nutrient additive description
QLineEdit c_growth_temp_day "Daytime Temp" Experiment daytime growth temperature
QLineEdit c_growth_temp_night "Nighttime Temp" Experiment nighttime growth temperature
QLineEdit c_growth_light "Lighting Conditions" Natural or artificial light description
QLineEdit c_water_sched "Watering Schedule" How often plant was watered
QLineEdit c_session_user "Session User" Who input this information
QLineEdit c_session_addr "Contact Info" Email address of session user
QDateEdit c_session_date "Session Date" Date when data was collected
QLineEdit c_session_number "Session Title" Descriptive name for session
QLineEdit c_session_rig "Rig Name" Where data was collected
QLineEdit c_num_images "Number of Images" How many images were taken
QLineEdit c_plant_age "Plant Age" Age of plant when images were taken
QLineEdit c_session_notes "Session Notes" Additional important information
QLineEdit c_cam_make "Camera Make" Make of the camera used for imaging
QLineEdit c_cam_model "Camera Model" Model of the camera used for imaging
QLineEdit c_cam_shutter "Exposure Time" Exposure setting on the camera
QLineEdit c_cam_aperture "Aperture" Aperture setting on the camera
QLineEdit c_cam_exposure "ISO" ISO setting on the camera
QLineEdit c_cam_distance "Distance to Tank" Distance camera is away from center of tank
QComboBox c_img_orient "Image Orientation" Change to fix sideways or upside down images
QComboBox c_exclude "Exclude" Set to "True" to exclude session during save
QDialogBox c_buttons "Cancel / OK" "OK" starts imaging or import; "Cancel" returns to viewer

Run Session

The Run Session is the fourth view in mainwindow.ui and serves as a loading screen and progress bar during session imaging and importing.

Qt Design Qt View
RUN_EXP
Qt Type Qt Name Label Description
QLabel label "Acquiring Images ..."
QLabel c_preview Displays current import or first imaging preview
QProgressBar c_progress Displays the progress of import or imaging session
QPushButton abortButton "Cancel" Disabled

The File Search is the fifth view in mainwindow.ui and serves as interface for users to explore multiple project files to find a file with specific plant details.

Qt Design Qt View
FILE_SEARCH
Qt Type Qt Name Label Description
QPushButton menuButton2 "Main Menu" Return to the main menu
QPushButton add_file "+" Add files to search list
QPushButton rm_file "-" Remove selected file from search list
QLineEdit f_search "Search..." Filter search list with keywords
QTreeView file_browse_sheet List of all search files
QTreeView file_search_sheet List of all plants within search files
QCommandLinkButton explore_file "Explore" Open the selected search file

Analysis

The Analysis is the sixth view in mainwindow.ui and serves as the interface for users to perform camera calibration and/or image processing.

Qt Design Qt View
ANALYSIS
Qt Type Qt Name Label Description
QLabel sessionTitleLabel "Session Title:"
QLabel a_sess_title "n/a" Displays the selected session title
QLabel sessionDateLabel2 "Session Date:"
QLabel a_sess_date "n/a" Displays the selected session date
QLabel imageCountLabel "Image Count:"
QLabel a_sess_count "n/a"
QListView a_thumb
IDA a_preview
QPushButton a_save "Back"
QPushButton a_undo "Undo"
QPushButton a_rLeft "Rotate Left"
QPushButton a_rRight "Rotate Right"
QPushButton a_gray "Grayscale"
QPushButton a_thresh "Threshold"
QPushButton a_invert "Invert"

Class Diagram

ClassDiagramAbrvV1.4.png

Sequence Diagrams

UC1 - New File

Release v.1.4

SD-UC1.png

UC3 - Create Session

Release v.1.4

SD-UC3.png

Updated