TransWikia.com

как отловить событие изменения размера столбца в QTableWidget?

Stack Overflow на русском Asked by NEStenerus nester on November 24, 2021

У меня есть QTableWidget, пользователь может менять размер столбцов при помощи мыши, и мне бы хотелось иметь возможность отловить какой-нибудь сигнал при изменении размеров какого-нибудь столбца.

Но в QTableWidget нет никаких сигналов, которые бы делали то, что я хочу.

Где мне искать нужный сигнал?

One Answer

Для отслеживания размера столбцов в заголовке таблицы, нужно обратиться к horizontalHeader и подключиться к его сигналу sectionResized:

Пример:

from PyQt5.QtWidgets import QApplication, QTableWidget

def _on_section_resized(logical_index: int, old_size: int, new_size: int):
    print(logical_index, old_size, new_size)

app = QApplication([])

table = QTableWidget()
table.setColumnCount(5)
table.horizontalHeader().sectionResized.connect(_on_section_resized)
table.resize(600, 400)
table.show()

app.exec()

Если подключение сигнала будет к методу:

from PyQt5.QtWidgets import QApplication, QTableWidget, QMainWindow

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

        table = QTableWidget()
        table.setColumnCount(5)
        table.horizontalHeader().sectionResized.connect(self._on_section_resized)

        self.setCentralWidget(table)

    def _on_section_resized(self, logical_index: int, old_size: int, new_size: int):
        print(logical_index, old_size, new_size)

app = QApplication([])

mw = MainWindow()
mw.resize(600, 400)
mw.show()

app.exec()

Answered by gil9red on November 24, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP