crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QTreeWidget, Сигналы
flankerr
  опции профиля:
сообщение 19.2.2008, 15:45
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 9.1.2008
Пользователь №: 65

Спасибо сказали: 2 раз(а)




Репутация:   0  


Qt 4.1.2
Есть дерево в узлах установлено чекбокс, так вот не получается выловить сигнал измения состояния этого чек бокса... (когда пользователь щёлкает по чекбоксу)

connect(this,SIGNAL(itemClicked( QTreeWidgetItem * item, int column )),this,SLOT(OnChangedItem( QTreeWidgetItem * item, int column ) ));
сonnect(this,SIGNAL(itemChanged( QTreeWidgetItem * item, int column ) ),this,SLOT(OnChangedItem( QTreeWidgetItem * item, int column ) ));

разумеется слот OnChangedItem( QTreeWidgetItem * item, int column ) создан.
но не отрабатывает а где грабли не вижу...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 19.2.2008, 17:40
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


У меня все отрабатывает, я сделал вот так:
class CTest: public QObject
{
    Q_OBJECT

public:
    CTest(QWidget *parent = 0, Qt::WFlags flags = 0){}
    ~CTest(){}

public slots:
    void OnCheckState( QTreeWidgetItem *item, int column);
};

void CTest::OnCheckState( QTreeWidgetItem *item, int column)
{
    QMessageBox::information( 0, "info", QObject::tr( "%1- column %2").arg( item->isExpanded()).arg( column));
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QTreeWidget *pTreeWidget = new QTreeWidget( 0);
    pTreeWidget->setColumnCount(2);
    QStringList headers;
    headers << QObject::tr("Subject") << QObject::tr("Default");
    pTreeWidget->setHeaderLabels( headers);

    QTreeWidgetItem *pRoot = new QTreeWidgetItem( pTreeWidget);
    pRoot->setText( 0, QObject::tr("Root"));
    
    for( int n = 0; n < 100; n++)
    {
        QTreeWidgetItem *pChild = new QTreeWidgetItem( pRoot);
        pChild->setFlags( pChild->flags() | Qt::ItemIsEditable);
        
        QString sz0 = QObject::tr( "Item %1").arg( n);
        QString sz1 = QObject::tr( "Sub item %1").arg( n);
        pChild->setText(0, sz0);
        pChild->setText(1, sz1);

        pChild->setCheckState(0,Qt::Checked);
    }

    pTreeWidget->expandItem( pRoot);
    //pTreeWidget->collapseItem( pRoot);

    CTest test;
    QObject::connect( pTreeWidget, SIGNAL(  itemChanged( QTreeWidgetItem *, int)), &test, SLOT( OnCheckState( QTreeWidgetItem *, int)));
    pTreeWidget->show();

    return a.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- flankerr   QTreeWidget   19.2.2008, 15:45
- - ViGOur   А как ты выставляешь чекбокс? Я просто не совсе по...   19.2.2008, 16:25
- - Litkevich Yuriy   чето я про чек бокс тоже не въехал, если юзер имен...   19.2.2008, 16:44
- - flankerr   Есть класс унаследованный от QTreeWidget внутри ...   19.2.2008, 17:05
- - ViGOur   У меня все отрабатывает, я сделал вот так: class C...   19.2.2008, 17:40
- - Litkevich Yuriy   Я по пробывал твой пример скомпилить, линкер ругае...   19.2.2008, 18:31
- - ViGOur   Класс CTest нужно перенести в .h файл.   19.2.2008, 18:36
- - Litkevich Yuriy   хм, а вчем принципиальная разница?   19.2.2008, 18:37
- - ViGOur   в moc'е.   19.2.2008, 18:40
- - Litkevich Yuriy   ХМ, НЮАНЕЦ однако, это видимо во всех случаях где ...   19.2.2008, 18:42
- - ViGOur   Цитата(Litkevich Yuriy @ 19.2.2008, 18:42...   20.2.2008, 9:11
- - flankerr   понял почему у меня не получалось. надо было та...   20.2.2008, 11:37
- - flankerr   Возник другой вопрос. Как сделать чтобы событие о...   20.2.2008, 12:08
- - Litkevich Yuriy   не все сигналы посылаются при програмном изменении...   21.2.2008, 0:25
|- - flankerr   Цитата(Litkevich Yuriy @ 21.2.2008, 0:25)...   21.2.2008, 11:37
- - Tonal   Зачем же дисконнект/коннект? Есть же QObject::bloc...   21.2.2008, 11:11
|- - flankerr   Цитата(Tonal @ 21.2.2008, 11:11) Зачем же...   21.2.2008, 11:33
|- - Tonal   Цитата(flankerr @ 21.2.2008, 14:33) Цитат...   22.2.2008, 8:33
- - Litkevich Yuriy   Цитата(flankerr @ 21.2.2008, 14:37) как и...   21.2.2008, 17:55
- - flankerr   кстати чего-то сразу ступил... blockSignal можно ж...   26.2.2008, 17:58


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.5.2024, 21:54