Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Павел_F. от Декабрь 28, 2009, 09:10



Название: как отловить изменение кол-ва строк в QTableWidget?
Отправлено: Павел_F. от Декабрь 28, 2009, 09:10
Есть унаследованный от QTableWidget класс. Нужно отследить изменение кол-ва строк в нем. В хелпе не нашел как.
Есть у него:
void QTableView::rowCountChanged ( int oldCount, int newCount )   [protected slot]
This slot is called whenever rows are added or deleted. The previous number of rows is specified by oldCount, and the new number of rows is specified by newCount.
Но как это мне поможет, и поможет ли, не понимаю?...


Название: Re: как отловить изменение кол-ва строк в QTableWidget?
Отправлено: BRE от Декабрь 28, 2009, 09:18
А кто может изменить количество строк и как?
Этот кто-то все равно должен вызвать setRowCount или insertRow... Можно в классе добавить свой метод(ы) для этого и в нем(них) - отслеживать.


Название: Re: как отловить изменение кол-ва строк в QTableWidget?
Отправлено: Павел_F. от Декабрь 28, 2009, 09:27
Так, конечно, можно. Но я пишу абстрактный класс, нужен он мне, и соответственно там присутствуют чисто виртуальные функции. Где что добавится я не знаю. Хотелось бы не вылезать за свой абстрактный класс. Я не знаю где и как вызовется изменение кол-ва строк. Можно конечно переопределить все что это кол-во меняет и добавить туда. Но может есть более "простое и красивое" решение.


Название: Re: как отловить изменение кол-ва строк в QTableWidget?
Отправлено: BRE от Декабрь 28, 2009, 09:37
Можно получить внутреннею модель QTableWidget и подключиться к ее сигналам:
void rowsInserted ( const QModelIndex & parent, int start, int end )
void rowsRemoved ( const QModelIndex & parent, int start, int end )