LINUX.ORG.RU

[Qt] Хочется странного, показ одного виджета в двух диалогах

 


0

1

Вопрос такой:есть у меня например какой-то комбобокс, и я хочу показать его в двух разных диалогах (чтобы не соединять их сигналами и не мучитсья с синхронизацией). Если я беру из первого диалога указатель на комбобокс и вставляю по нему во второй, то он исчезает из первого (комбобокс). Можно ли такое реализовать? Это было бы куда легче, чем синкать в моём случае. Если что, то речь идет об обном объекте класса в двух диалогах.



Последнее исправление: flareguner (всего исправлений: 1)

> и не мучитсья с синхронизацией

connect(dialog1, SIGNAL(currentIndexChanged(int)), dialog2, SLOT(setCurrentIndex(int)));
connect(dialog2, SIGNAL(currentIndexChanged(int)), dialog1, SLOT(setCurrentIndex(int)));

и пусть теперь с ней qt мучается ;)

ps: надеюсь, мёртвого цикла не будет ;)

arsi ★★★★★
()
Ответ на: комментарий от arsi

Ну в худшем случае можно будет понаблюдать за прекрасной цветомузыкой. А вообще то, что ты назвал, называется property binding

Gorthauer ★★★★★
()
Ответ на: комментарий от arsi

ps: надеюсь, мёртвого цикла не будет ;)

Вот-вот,у меня кажется он и получился. Хотя мб где-то в коде напортачил. Проверю. Да и красивее было бы сделать, как я писал выше.

flareguner
() автор топика
Ответ на: комментарий от flareguner

не, не должно быть мёртвого цикла:

void QComboBoxPrivate::setCurrentIndex(const QModelIndex &mi)
{
    Q_Q(QComboBox);
    bool indexChanged = (mi != currentIndex);
    // <skip />
    if (indexChanged) {
        q->update();
        _q_emitCurrentIndexChanged(currentIndex);
    }
}
arsi ★★★★★
()

показ одного виджета в двух диалогах

для начала сделай виджет (QWidget) :)

положи его куда тебе надо и сколько раз надо

при всех операциях держи в голове слово из трёх букв - MVC

????

щастье

shty ★★★★★
()
Ответ на: комментарий от flareguner

Дык этот самый виджет исчезает. Если положить в два места, то будет виден только в одном.

дык виджет-то 1, а экземпляра нужно 2 :) сделайте ручками в коде, если это возможно

shty ★★★★★
()
Ответ на: комментарий от arsi

В дополнение к сигналам можно ещё во втором комбобоксе сделать просто: secondComboBox->setModel( firstComboBox->model() ). Хотя надо бы убедиться в корректном её удалении...

Dendy ★★★★★
()
Ответ на: комментарий от flareguner

Вот я и хотел юзать один объект в двух местах.

идея порочна, это как если бы Вы с одной стороны пошли на работу, а с другой стороны остались дома и поспали, причём одновременно

да и зачем?

shty ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.