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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Связь виджетов расположенных на разных формах  (Прочитано 12288 раз)
Stek
Гость
« : Июль 27, 2012, 14:37 »

Здравствуйте!

Собственно вопрос в названии темы: как связать виджеты расположенные на разных формах? Тема поднималась и не раз, но увы я так и не понял как же это всё-таки сделать  Грустный

Есть 2 формы, на одной из них treeWidget, на другой comboBox с списком значений. По нажатии кнопки выбранное значение из comboBox должно присваиваться текущему пункту treeWidget

ui->treeWidget->currentItem()->setText(0,ui->comboBox->currentText());

как такое осуществить из разных форм
Записан
mutineer
Гость
« Ответ #1 : Июль 27, 2012, 14:43 »

связать формы через сигнал-слот, например
Записан
Stek
Гость
« Ответ #2 : Июль 27, 2012, 14:52 »

связать формы через сигнал-слот, например

Спасибо конечно, но можно поподробнее. Про сигналы, слоты читал и имею представление. Но хотелось бы небольшой пример в к-ом увязываются между собой виджеты разных форм, если это не очень сложно и это раздел для новичков начинающих своё знакомство с qt. Думаю в таком случае одинаковых тем на форуме станет на одну меньше.
Записан
mutineer
Гость
« Ответ #3 : Июль 27, 2012, 14:56 »

Создаешь у первой формы сигнал needToChangeText(QString) и при нажатии на кнопку делаешь его emit со значением ui->comboBox->currentText()

Во второй форме делаешь слот changeText(QString), в котором выполняешь ui->treeWidget->currentItem()->setText(параметр слота)

Привязываешь сигнал к слоту
Записан
Stek
Гость
« Ответ #4 : Июль 27, 2012, 15:39 »

Не понимаю  Плачущий, точнее понимаю о чём речь, но как организуется взаимосвязь не пойму.
Создам я слоты у обеих форм, но как их увязать между собой, чтобы виджет одной формы обратился к виджету другой.
Был пост с подобной темой http://www.prog.org.ru/topic_16396_0.html, там говорилось о qobject_cast. Не могли бы привести фрагмент кода для таких как я непонимающих.
Записан
mutineer
Гость
« Ответ #5 : Июль 27, 2012, 15:41 »

Ты, похоже, невнимательно читаешь. Я не говорил про слоты у обеих форм, я говорил про сигнал у одной формы и слот у другой. Связываются они через connect, что должны делать я описал. Что конкретно тебе непонятно?
Записан
Stek
Гость
« Ответ #6 : Июль 27, 2012, 15:49 »

Читать стараюсь внимательно, но не понимаю если можно так выразиться.. результирующей составляющей. Можно повториться, неясно как я связываю виджеты разных форм, ключевой связующий "элемент" мне не понятен. Реализовать предложенный вами вариант у меня не получилось. Ткните носом в тему, мануал, пример из qt с решением подобного вопроса..
« Последнее редактирование: Июль 27, 2012, 15:55 от Stek » Записан
mutineer
Гость
« Ответ #7 : Июль 27, 2012, 16:04 »

Ткнуть носом в пример реализации сигнала и слота? Первая форма высылает сигнал со значением, которое вторая форма в слоте вставляет в нужный виджет. Все рады, счастливы, поют песни. Выкладывай код, в котором у тебя не получилось реализовать
Записан
Bepec
Гость
« Ответ #8 : Июль 27, 2012, 17:08 »

http://qt-project.org/doc/qt-4.8/signalsandslots.html#signals-and-slots
Записан
Stek
Гость
« Ответ #9 : Июль 30, 2012, 10:56 »

Добрый день!
Не могли бы вы всё-таки привести пример кода, если не затруднит. Непонимающий
Записан
mutineer
Гость
« Ответ #10 : Июль 30, 2012, 11:00 »

Пример кода сигналов и слотов?
Ты будешь показывать что у тебя не получилось?
Записан
Bepec
Гость
« Ответ #11 : Июль 30, 2012, 12:00 »

Записан
Stek
Гость
« Ответ #12 : Июль 30, 2012, 12:22 »


При всём моём уважении и вашем статусе с внушительным кол-вом постов, ну наверное более объёмных и содержательных и не связанных с раздачей ссылок и указании направления на QtSDK/examples... был бы более благодарен за пример, реализующий указанную задачу.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #13 : Июль 30, 2012, 12:32 »

При всём моём уважении и вашем статусе с внушительным кол-вом постов, ну наверное более объёмных и содержательных и не связанных с раздачей ссылок и указании направления на QtSDK/examples... был бы более благодарен за пример, реализующий указанную задачу.
Нет ничего плохого в "дайте списать" (суть Вашего поста), если человек вежливый. Но в данном случае как Вы себе это представляете? Кто-то должен набросать скелетик приложения, придумать какие-то формы, заполнить их чем-то - не многовато ли только чтобы "показать пример"? Выложите проект и скажите что с чем хотите связать - и поверьте, свяжут очень быстро  Улыбающийся
Записан
Stek
Гость
« Ответ #14 : Июль 30, 2012, 12:46 »

Пример кода сигналов и слотов?
Ты будешь показывать что у тебя не получилось?
Bkb
Когда вообщем-то не понятна реализация написать что-то внятное довольно трудно, можно написать бред и количество постов в ветке станет больше. void needToChangeText(QString) я пишу для form1, pushButton расположен на form2.ui по нажатии на него я должен вызвать emit needToChangeText(QString) ..
Можно на примере показать что к чему, чтобы было понятно (и не только мне)? Или же, как обычно бывает: Вам всё выше написали, а вы просто не хотите читать и разбираться. Мне непонятно как виджет формы1 сможет получить данные виджета формы2. Я понимаю что можно использовать сигнал-слот (собственно вопрос как?). Я  только начал изучать qt. В контексте моей задачи я не знаю как увязать слот-сигнал.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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