单纯使用networkx的话会蹦出来一个独立的窗口,那么,因为networkx是建立在matplotlib的基础上的,既然可以将matplotliblib嵌入pyqt,networkx的嵌入从理论上也是可以实现的。
将matplotlib嵌入pyqt参考了这篇博客:https://www.cnblogs.com/Arago/p/7765510.html
使用qt designer先创建一个widget,然后保存,将.ui转为.py格式。
修改自动生成的代码(改为自定义的PlotCanvas):
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(699, 544)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.widget = PlotCanvas(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(0, 0, 500, 500))