Событие "Клик по заголовку" QTableWidget

weamagic

Пользователь
Пользователь
Июл 11, 2020
141
13
18
День добрый.
Пытаюсь получить название заголовка столбца по клику по нему. Нашел только событие
Python:
cellClicked
. Есть ли такое же для заголовка столбца?

P.S. Раньше использовал VB и Delphi, где многое делается гораздо проще, так что извиняюсь за глупые вопросы.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Есть ли такое же для заголовка столбца?
Вот пример обработки клика по заголовку:
Python:
from PyQt5.QtWidgets import (QApplication, QMainWindow, QGridLayout,
                             QWidget, QTableWidget)
from PyQt5.QtCore import QSize
import sys


class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

        self.setMinimumSize(QSize(400, 100))
        central_widget = QWidget(self)
        self.setCentralWidget(central_widget)
        grid_layout = QGridLayout()
        central_widget.setLayout(grid_layout)

        self.table = QTableWidget(3, 3, self)
        self.table.setHorizontalHeaderLabels(["A", "B", "C"])
        self.table.horizontalHeader().sectionClicked.connect(self.click_handler)
        grid_layout.addWidget(self.table, 0, 0)

    def click_handler(self, e):
        column_text = self.table.horizontalHeaderItem(e).text()
        print(column_text)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    mw = MainWindow()
    mw.show()
    sys.exit(app.exec())
 

weamagic

Пользователь
Пользователь
Июл 11, 2020
141
13
18
Вот пример обработки клика по заголовку:
Python:
from PyQt5.QtWidgets import (QApplication, QMainWindow, QGridLayout,
                             QWidget, QTableWidget)
from PyQt5.QtCore import QSize
import sys


class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

        self.setMinimumSize(QSize(400, 100))
        central_widget = QWidget(self)
        self.setCentralWidget(central_widget)
        grid_layout = QGridLayout()
        central_widget.setLayout(grid_layout)

        self.table = QTableWidget(3, 3, self)
        self.table.setHorizontalHeaderLabels(["A", "B", "C"])
        self.table.horizontalHeader().sectionClicked.connect(self.click_handler)
        grid_layout.addWidget(self.table, 0, 0)

    def click_handler(self, e):
        column_text = self.table.horizontalHeaderItem(e).text()
        print(column_text)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    mw = MainWindow()
    mw.show()
    sys.exit(app.exec())
Спасибо. Мне всё думалось, что section несколько другое - привычка.
 

Форум IT Специалистов