Russian Qt Forum
Ноябрь 24, 2024, 17:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QVector.clear()  (Прочитано 5085 раз)
J. Bond
Гость
« : Июнь 19, 2007, 11:45 »

есть класс полученный наследованием QGroupBox и еще одного класса, написанного мной. Этот класс запихнут в вектор при очистке вектора компилятор ругается: cannot access private member declared in QGroupBox.
Код:

class A:public QGroupBox,public B;
QVector<A> C;
C.clear();


В чем проблема?
Записан
Tonal
Гость
« Ответ #1 : Июнь 19, 2007, 12:14 »

Наследников QObject нельзя пихать в QVector.
Можно пихать указатели на них.

Читай доку.
Смотри мои объяснения для QList здесь: http://prog.org.ru/forum/topic_5549.html
Записан
J. Bond
Гость
« Ответ #2 : Июнь 19, 2007, 14:56 »

Спасиб

добавлено спустя 2 часа 26 минут:

 Еще вопрос.
Все тот же класс, хочу связать сигнал со слотом:
connect(this,SIGNAL(clicked()),SLOT(on_group_click()));
связываю в конструкторе класса.
Коннектит нормально(возвращает true), но при клике по групбоксу ничего не происходит.
В чем проблема?
Записан
vregess
Гость
« Ответ #3 : Июнь 19, 2007, 17:29 »

Цитата: "J. Bond"


Все тот же класс, хочу связать сигнал со слотом:
connect(this,SIGNAL(clicked()),SLOT(on_group_click()));
В чем проблема?

Забыл указать чей слот (3-ий параметр)
Код:

connect(this,SIGNAL(clicked()),this,SLOT(on_group_click()));
Записан
J. Bond
Гость
« Ответ #4 : Июнь 19, 2007, 17:31 »

Это необязательно когда коннектишь на себя.
Так я тоже пробовал Грустный
Записан
Klaustrofob
Гость
« Ответ #5 : Июнь 19, 2007, 18:45 »

Q_OBJECT написал при определении класса?
Записан
J. Bond
Гость
« Ответ #6 : Июнь 20, 2007, 10:13 »

Конечно, вообще коннект выдает тру, т.е. все описано правильно, но при клике не происходит посылки сигнала
Записан
Tonal
Гость
« Ответ #7 : Июнь 20, 2007, 11:13 »

А у тебя QGroupBox чекабленный?
Клик посылается только в этом режиме, и только при нажатии в чек:
Цитировать
void QGroupBox::clicked ( bool checked = false )  [signal]
This signal is emitted when the check box is activated (i.e. pressed down then released while the mouse cursor is inside the button), or when the shortcut key is typed, Notably, this signal is not emitted if you call setChecked()
.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.103 секунд. Запросов: 21.