вопрос по QT - решено
Модератор: Модераторы разделов
-
- Сообщения: 17
- ОС: Fedora 7
вопрос по QT - решено
имеются два диалога. из первого вызывается второй, по его закрытию на первом надо вызвать слот.
как именно это можно сделать?
как именно это можно сделать?
-
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: вопрос по QT - решено
Ну скажем, если диалог - QDialog или наследник. Либо другой какой потомок от QWidget, то всё просто:
Хотя это просто на закрытие реагирует. Для диалогов есть более конкретные сигналы, дающие понятие о том, как оный диалог сработал.
Код: Выделить всё
QObject::connect(dialog2, SIGNAL(close()), dialog1, SLOT(neededSlot());
Хотя это просто на закрытие реагирует. Для диалогов есть более конкретные сигналы, дающие понятие о том, как оный диалог сработал.
Код: Выделить всё
accept(), reject ()
В дисгармонии со вселенной.
-
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: вопрос по QT - решено
eduard_pustobaev писал(а): ↑15.08.2007 13:52Ну скажем, если диалог - QDialog или наследник. Либо другой какой потомок от QWidget, то всё просто:
Код: Выделить всё
QObject::connect(dialog2, SIGNAL(close()), dialog1, SLOT(neededSlot());
Хотя это просто на закрытие реагирует. Для диалогов есть более конкретные сигналы, дающие понятие о том, как оный диалог сработал.
Код: Выделить всё
accept(), reject ()
QDialog::close() это же слот. Или я что то пропустил?
-
- Сообщения: 402
- Статус: Красноглазик со стажем
- ОС: Mavericks
Re: вопрос по QT - решено
Да, это слот. У QDialog усть сигнал void finished ( int result ). В 4-м по крайней мере.
-
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: вопрос по QT - решено
Нет, всё правильно. QWidget::close() - слот. Это я подзабыл немного.
У диалога есть подходящие для такого сигналы:
void accepted ()
void finished ( int result )
void rejected ()
В дисгармонии со вселенной.
-
- Сообщения: 17
- ОС: Fedora 7
Re: вопрос по QT - решено
Код: Выделить всё
QObject::connect(dialog2, SIGNAL(close()), dialog1, SLOT(neededSlot());
Это нужно прописывать в первой форме или во второй?
-
- Сообщения: 17
- ОС: Fedora 7
Re: вопрос по QT - решено
Надо ли как то этот сигнал в коде прописывать? Потому что у меня ругнулось:
QObject::connect: No such signal dEditDialog::rejected()
QObject::connect: No such signal dEditDialog::rejected()
-
- Сообщения: 17
- ОС: Fedora 7
-
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: вопрос по QT - решено
Всё хорошо, что хорошо кончается.
P.S. Кто-нибудь QThreads использует? Так, интересуюсь просто.
В дисгармонии со вселенной.
-
- Сообщения: 17
- ОС: Fedora 7
Re: вопрос по QT - решено
Новый вопрос. Как в QT можно определить количество атрибутов в ноде xml и их значения? в ассистанте ничего не нашел
например <noda x1=2 x2=2 x3=3>
например <noda x1=2 x2=2 x3=3>
-
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: вопрос по QT - решено
Почему же нету? Есть:
Код: Выделить всё
QDomNamedNodeMap attribs = QDomNode::attributes();
int count = attribs.count();
(QDomNode item ( int index ), QDomNode namedItem ( const QString & name ) const)
В дисгармонии со вселенной.
-
- Сообщения: 17
- ОС: Fedora 7
Re: вопрос по QT - решено
Подскажите плиз!
На какой ноде я после копирования? На той которую скопировал или предыдущей? И как заменить значение ss:Index на скопированой ноде?
Пробовал заменять после
Так он все заменил, и исходную и скопированную
Код: Выделить всё
//ищу нужную ноду
if( n.nodeName()=="Row" )
{
//есть атрибут ss:Index, который равен например 10
QDomAttr a = n.toElement().attributeNode( "ss:Index" );
//копирую всю эту ветку
n.parentNode().insertAfter(n.cloneNode(true),n);
}
На какой ноде я после копирования? На той которую скопировал или предыдущей? И как заменить значение ss:Index на скопированой ноде?
Пробовал заменять после
Код: Выделить всё
n.parentNode().insertAfter(n.cloneNode(true),n);
Так он все заменил, и исходную и скопированную
-
- Сообщения: 17
- ОС: Fedora 7
-
- Сообщения: 17
- ОС: Fedora 7
Re: вопрос по QT - решено
Как можно обойти дерево QListViewItem?
Проблема возникает при переходе с последней child ветки на следующую от парента этой child ветки
Допустим есть item с которого надо начать обход
item
Так вот когда нахожусь на с nextSibling () не переходит на item2
Как правильно обойти дерево?
Проблема возникает при переходе с последней child ветки на следующую от парента этой child ветки
Допустим есть item с которого надо начать обход
item
item1
a
b
c
item2
d
item3
Так вот когда нахожусь на с nextSibling () не переходит на item2
Как правильно обойти дерево?