python - 如何防止为 TableWidget 第一行上创建的每个 ComboBox 编写额外的代码行?
问题描述
我想在 TableWidget 的第一行创建一个 ComboBox。我的代码到目前为止有效,但问题是我必须为每个单元格的每个 ComboBox 编写另一行。我使用这些组合框对每一列进行分类,以从这些列中检索数据以进行计算。有没有办法缩短代码?提前谢谢了。
我的代码
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, 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)
解决方案
推荐阅读
- eclipse - 拥有一个或多个 Java 模块,与多个 Spring-boot-projects 共享
- apple-m1 - Mac M1:Dnsmasq 无法解析新苹果 m1 芯片上的本地主机
- java - Java SSL 异常:无法创建 StAX 读取器或写入器
- react-native - android studio 找不到跑步者
- flutter - 是否可以在没有时区的情况下将特定日期保存到 Firestore?
- java - 颤振错误:任务':app:validateSigningDebug'执行失败
- python-3.x - load_dataset 在拥抱脸中需要多长时间?
- amazon-web-services - 从 Lambda 访问 RDS
- flutter - 我如何从 Firestore 数据创建列表
- multithreading - 为什么不同的处理器可以为多线程程序提供不同的最大速度?