问题描述
我的 GUI 程序需要一些帮助。当我单击菜单栏中的按钮时,应该会创建一个选项卡并显示如图所示的内容。但是,每次单击该按钮时,都会创建一个新选项卡,但第一次单击该按钮时没有任何显示。内容仅在创建第二个选项卡时显示。
这是控制台给出的消息:
Traceback (most recent call last):
File "C:\Users\ASUS\anaconda3\lib\site-packages\matplotlib\backends\backend_qt5.py",line 496,in _draw_idle
self.draw()
File "C:\Users\ASUS\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py",line 388,in draw
self.renderer = self.get_renderer(cleared=True)
File "C:\Users\ASUS\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py",line 404,in get_renderer
self.renderer = RendererAgg(w,h,self.figure.dpi)
File "C:\Users\ASUS\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py",line 92,in __init__
self._renderer = _RendererAgg(int(width),int(height),dpi)
ValueError: Image size of 11184794x453 pixels is too large. It must be less than 2^16 in each direction.
相关代码从这里开始
self.actionMarket.triggered.connect(lambda:self.show_result('Grid')) #to show result
self.actionFuel_Cell.triggered.connect(lambda:self.show_result('FC')) #to show result
def show_result(self,component_name):
self.new_tab = QtWidgets.QWidget()
self.new_tab.setobjectName(component_name)
self.plot_widget_1 = QtWidgets.QWidget(self.new_tab)
self.tabWidget.addTab(self.new_tab,"")
self.tabWidget.setTabText(self.tabWidget.indexOf(self.new_tab),QtCore.QCoreApplication.translate("MainWindow",component_name))
# self.plot_widget_1.setMinimumSize(QtCore.QSize(0,100))
self.plot_widget_1.setMinimumSize(QtCore.QSize(16777215,500))
self.plot_widget_1.setMaximumSize(QtCore.QSize(16777215,500))
self.plot_widget_1.setobjectName("plot_widget_1")
dynamic_canvas = figureCanvas(figure(figsize=(10,10)))
self._dynamic_ax = dynamic_canvas.figure.subplots()
x_Axis=[]
for i in range (1,25):
x_Axis.append(i)
self._dynamic_ax.bar(x_Axis,MG.get_component(component_name))
self._dynamic_ax.set(xlabel='Time(hour)',ylabel='Power(kW)',title= "Power Schedule of " + component_name)
self.table = QtWidgets.QTableWidget(0,2)
self.table.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Stretch)
layout = QtWidgets.qgridLayout(self.plot_widget_1)
layout.addWidget(dynamic_canvas,0)
layout.addWidget(self.table,1)
layout.setColumnStretch(0,2)
layout.setColumnStretch(1,1)
self.table.setColumnCount(1)
self.table.setRowCount(24)
item = QtWidgets.QTableWidgetItem()
for i in range (24):
self.table.setVerticalHeaderItem(i,item)
item = QtWidgets.QTableWidgetItem()
self.table.setHorizontalHeaderItem(0,item)
item = QtWidgets.QTableWidgetItem()
for i in range (24):
self.table.setItem(i,item)
item = QtWidgets.QTableWidgetItem()
for i in range (24):
item = self.table.verticalHeaderItem(i)
item.setText(str(i+1))
item = self.table.horizontalHeaderItem(0)
item.setText("Generation (kW)")
__sortingEnabled = self.table.isSortingEnabled()
self.table.setSortingEnabled(False)
for i in range(24):
item = self.table.item(i,0)
item.setText(str(MG.get_component(component_name)[i]))
self.table.setSortingEnabled(__sortingEnabled)
self.tabWidget.setCurrentIndex(self.tabWidget.count()-1) #to view the newly created tab
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)