Alright, so far, we have mastered the basic contents of GUI development, and are able to establish a seemingly proper user interface program. Now, we only need to fill the previous code segments for data processing and visualization into the methods bound to user events, and then a simple Python version of "Yahoo Finance" software comes into being. Seeing this interface, do you feel impatient to say. I finally see you after all. Thank you for enduring my long-time scribbling on the screen. Seems not bad this time. Let's look at the program realizing this effect. We have used 2 programs to achieve it. The first one is dji_wxpython. The second one is my_finance. Look at this program: my_finance. Does it look familiar to you? It has two functions. The first function, as we see, is to acquire the aforesaid "dji" data, i.e., the basic data of 30 Dow Jones Industrial Average stocks like the code name and the latest trading price. The second function is to acquire the historical data of a certain stock. Here, by default, we see the data of the recent year. Sure, to modify it, it's also easy. We may specify the starting date and the ending date in the url. Run the program. It will generate such a main interface. As we see, this main interface has a lot of components like the text box, the list box and various buttons. Defining and layout of these components and the events bound to them are all realized through this dji_wxpython program. This function, for example, is to define various components and layout. And these functions, are to define the events bound to these components. And, as we see, the first screen displays some data, and the date source is such a function. We can see that it calls this function from my_finance. And these two functions are to realize the forms of these data. This program allows for display of these basic information of 30 Dow Jones Industrial Average stocks. Moreover, it allows us to select some attributes of a certain stock such as the opening price, the closing price and the highest price. Draw a plot based on these data. The realization of this effect mainly depends on the "plotData()" function here. As we can see, this code segment should be familiar to us now. It processes the acquired data and converts them into a DataFrame for plotting. Sure, here, as we see, "plot()" is not followed by any argument, namely, plot a basic line chart. To draw other forms of plot, we may add some arguments here. In the text box, input our interested stock code and press Enter or double click a list, to acquire the line chart of historical data of a certain stock over the recent year. However, Spyder blocks events like Enter, so we must run this program under Command. Please note that, when running a program under Command, do remove the file from the default directory, for saving the system Python files under Anaconda. Sure, it's sometimes where we saved files before. In fact, it's a lazy way. Inadvisable. The reason is that, if you happen to create a file whose name is the same as the name of Python module, the capacity of original module would be overwritten. We should pay attention to this. Well, let's run this program. This is the main interface. With this method, we may input a stock code into the text box, and, say, select the needed attribute. Press Enter to run it. This is the corresponding line chart. In an alternative way, we may double click a certain stock and also get the line chart with the selected attribute. In this example, we utilized GUI to acquire, process and express data It's a complete process of processing data using Python. It deserves our thorough understanding and realizing it by ourselves.