Заголовок столбца пуст при использовании setHorizontHeaderLabels в tableWidget - PullRequest
0 голосов
/ 15 марта 2020

Я новичок в QtDesigner, я пытаюсь изучить и кодировать, однако я не понимаю, почему ниже простой код не будет устанавливать имя заголовка столбца в tableWidget.

в соответствии с документацией, если я хочу установить столбец имя должно быть примерно таким:

ui.tableWidget.setHorizontalHeaderLabels(('Col 1', 'Col 2', 'Col 3'))

, но при загрузке программы не отображается имя заголовка, Ами, я пропустил какие-либо ссылки на класс или объект?

Может кто-нибудь сказать мне, где я делаю не так?

полный код здесь, его просто

 -*- 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_())

1 Ответ

1 голос
/ 15 марта 2020

Проблема в том, что счетчик столбцов таблицы установлен в ноль, поэтому имена столбцов установлены, но столбцы для отображения отсутствуют. Чтобы установить количество столбцов в вашей таблице, вы можете использовать self.tableWidget.setColumnCount(3).

Кроме того, обычно плохая идея редактировать python файлы, сгенерированные непосредственно QtDesigner. Лучше импортировать его в отдельный файл python и поместить туда весь свой пользовательский код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...