Python 在tableWidget中使用setHorizontalHeaderLabels时,列标题为空

Python 在tableWidget中使用setHorizontalHeaderLabels时,列标题为空,python,python-3.x,pyqt5,Python,Python 3.x,Pyqt5,我是QtDesigner的新手,我正在尝试学习和编写代码,但我不明白为什么下面的简单代码不会在tableWidget中设置列标题名 根据文档,如果我想设置列名,应该是这样 ui.tableWidget.setHorizontalHeaderLabels(('Col 1', 'Col 2', 'Col 3')) 但当程序加载时,它不显示头名称,Ami是否缺少任何类或对象引用 谁能告诉我哪里做错了 完整的代码在这里,很简单 -*- coding: utf-8 -*- # Form implem

我是QtDesigner的新手,我正在尝试学习和编写代码,但我不明白为什么下面的简单代码不会在tableWidget中设置列标题名

根据文档,如果我想设置列名,应该是这样

ui.tableWidget.setHorizontalHeaderLabels(('Col 1', 'Col 2', 'Col 3'))
但当程序加载时,它不显示头名称,Ami是否缺少任何类或对象引用

谁能告诉我哪里做错了

完整的代码在这里,很简单

 -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'table_view.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(850, 363)
        self.tableWidget = QtWidgets.QTableWidget(Dialog)
        self.tableWidget.setGeometry(QtCore.QRect(120, 50, 511, 192))
        self.tableWidget.setObjectName("tableWidget")
        self.tableWidget.setColumnCount(0)
        self.tableWidget.setRowCount(0)
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(260, 280, 75, 23))
        self.pushButton.setObjectName("pushButton")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.pushButton.setText(_translate("Dialog", "PushButton"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    ui.tableWidget.setHorizontalHeaderLabels(('Col 1', 'Col 2', 'Col 3'))
    ui.tableWidget.show()
    Dialog.show()
    sys.exit(app.exec_())

问题是表的列计数设置为零,因此列名称已设置,但没有要显示的列。要设置表中的列数,可以使用
self.tableWidget.setColumnCount(3)


另外,直接编辑QtDesigner生成的python文件通常是一个坏主意。最好将其导入到单独的python文件中,并将所有自定义代码放在其中

问题是表的列计数设置为零,因此列名称已设置,但没有要显示的列。试试self.tableWidget.setColumnCount(3)。另外,直接编辑QtDesigner生成的python文件通常是一个坏主意。最好将其导入一个单独的python文件中,并将所有自定义代码放在其中。@Heike谢谢,这意味着如果我想将列标题设置为动态,我需要动态更改该属性,还是根本不使用该属性?直接向设计师致意,是的,当然,我会记住的time@Heike,我如何将您的解决方案注释为已回答?您不能将注释标记为已接受的答案。我添加了一个答案。