问题描述
我想在 TableWidget 的第一行创建一个 ComboBox。我的代码到目前为止有效,但问题是我必须为每个单元格的每个 ComboBox 编写另一行。我使用这些 ComboBoxes 对每一列进行分类,以从这些列中检索数据以进行计算。有没有办法缩短代码?非常感谢。
我的代码
from PyQt5 import QtCore,QtGui,QtWidgets
class ComboBoxCategory(QtWidgets.QComboBox):
def __init__(self,parent):
super().__init__(parent)
self.setStyleSheet("font-size: 13px")
self.addItems(["","Customer-ID","Customer Name","Revenue","Year","Revenue Type"])
class Ui_MainWindow(object):
def setupUi(self,MainWindow):
MainWindow.resize(1700,800)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setobjectName("centralwidget")
#**************** Table Widget **********************#
self.TableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.TableWidget.setRowCount(500)
self.TableWidget.setColumnCount(26)
self.TableWidget.setHorizontalHeaderLabels(list("ABCDEFGHIJKLMnopQRSTUVWXYZ"))
self.TableWidget.setColumnWidth(0,200)
self.TableWidget.horizontalHeader().resizeSections()
self.TableWidget.setGeometry(QtCore.QRect(40,200,1625,500))
# # # ************ Table ComboBox first row ****************#
self.combo0 = ComboBoxCategory(self.TableWidget)
self.TableWidget.setCellWidget(0,self.combo0)
self.combo1 = ComboBoxCategory(self.TableWidget)
self.TableWidget.setCellWidget(0,1,self.combo1)
self.combo2 = ComboBoxCategory(self.TableWidget)
self.TableWidget.setCellWidget(0,2,self.combo2)
编辑:已解决
def ComboBox(self):
for column in range(2):
combo_cell = "combo" + "0"
self.combo_cell = ComboBoxCategory(self.TableWidget)
self.TableWidget.setCellWidget(0,column,self.combo_cell)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)