| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Connect формы с формой mainwindow |
| Автор: TractorT 13.7.2015, 15:43 | ||||||
| Помогите, знатоки! Есть mainwindow, на форме лежит frame. И есть форма form. В mainwindow.cpp строчка:
"впихивает" форму form в frame. Осилила, как по нажатию кнопки с формы mainwindow поменять что-то в форме form. Коннект такой:
А как наоборот? Ну вот есть на form кнопка, как с помощью нее делать какой-нибудь сеттекст на форме mainwindow? Что писать в третьем параметре коннекта?
parent в данном случае это frame с формы mainwindow, это не то, что надо. Спасибо всем откликнувшимся! Внезапно помогло: http://www.cyberforum.ru/qt/thread1231114-page2.html в самом низу ответ)) |
| Автор: ss 11.10.2015, 20:19 | ||
connect(objectSender, SIGNAL(senderSignal), destinationObject, SLOT (slotDestination) ) ,где: objectSender - ссылка на класс который будет посылать сигнал; senderSignal - сигнал на который будет подписан слот др. класса. destinationObject - ссылка на класс у которого будет вызван слот slotDestination - вызываемый слот. Слот который подписан на сигнал senderSignal. т.е. объект от которого будет сигнал, сам сигнал, объект приемник, вызываемый слот. Вызываться может не только слот а еще и также сигналы. кнопка которая меняет текст у надписи. mainwindow::setText() { ui->lbl.setText("установить текст"); } connect( ui->btn, SIGNAL(click(), this, SLOT(setText()) ); кнопка btn при нажатии генерирует сигнал click(). На этот сигнал подписан слот setText класса this (класс окна Mainwindow). Поэтому вызовиться слот setText |
| Автор: math64 12.10.2015, 08:34 | ||||||
NB: QtCreator не знает истинный тип main и при вводе слота не сможет выдать подсказку. но правильнее сделать как указано в вашей ссылке, т. е. создать сигнал в Form и делать connect в MainWindow. Третий способ - дать доступ к pushButton:
и коннект происходит в MainWindow:
|