Qt GUI开发代写 | Exercise: Fractal GUI
本次美国代写主要为Python qt GUI开发
In this exercise, students will practice working with the Qt GUI system, threading, and multiprocessing by
building an application to display a visualization of a fractal set. Note that you will need to have an X-Server
(e.g., VcXsrv) running to develop and test this exercise.
Each student will develop an application using Qt. The application will provide an interactive interface used to
display and navigate the visualization of the Mandelbrot Set. This will require multiprocessing in order to
complete tasks allocated by the fractal class in order to calculate the visualization. The driver program and all
classes will be in the Python routines will be in the fracviz.py file.
Visualization Application
The application should perform as follows.
General Structure
1) Run wsl module’s set_display_to_host() method
2) Instantiate a Qt application and classes as outlined here
3) Load the fracviz.ui GUI file and display the GUI
4) Instantiate the fractal using parameters in UI file
5) Display the fractal as outlined in this document
6) Only run the application if invoked directly
7) Have no global variables
Application Behavior
1) Accept only numeric input for text box entry
2) Reset visual and parameters to default when “Reset” is clicked
3) Zoom into fractal when mouse is dragged on the canvas widget
4) Set status to “Calculating set…” while generating image
5) Set status to “” when image generation is complete
NOTE: The visual should change only when edited is completed. It should not change on every textbox
keystroke entry; instead, it should change when a textbox loses focus or when “Enter” is pressed.
Key Libraries
It is worth reviewing the key libraries and classes that are used within the toolchains used for this exercise:
Qt (PySide2)
QObject: Objects interacting with Qt must derive from QObject (e.g., driver classes, event handlers).
QWidget: Forms and windows are made of a tree of QWidget objects (windows, forms, buttons, layouts,
etc).
Matplotlib
FigureCanvas: A widget that is associated with a Figure and is used to display it (e.g., a Qt Widget).
Figure: Single visual figure representation, made up of one or more plotted Axes sets (graphs).
Axes: Axes set in a visual area of a Figure onto which a graph or AxesImage can be plotted.
AxesImage: Object holding an image drawn to an Axes set.