Две формы !, проблемка при функции show() у второй формы |
Здравствуйте, гость ( Вход | Регистрация )
Две формы !, проблемка при функции show() у второй формы |
maxvanceffer |
9.6.2009, 19:26
Сообщение
#1
|
Студент Группа: Участник Сообщений: 72 Регистрация: 30.5.2009 Из: Moldova Пользователь №: 790 Спасибо сказали: 0 раз(а) Репутация: 0 |
Подскажите почему так происходит :
Вообщем после того как первая форма делает всё что нужно должна отобразиться вторая (её я добавил через креатор, то есть он сам там все инклуды прописал) я делаю примерно следующее И после того как отрабатывает эта функция второе окно на секунду появляться её края и она тут же исчезает а винда подаёт звук что действие не может быть выполнена . Ребять кто знает почему она не отображаться? |
|
|
Litkevich Yuriy |
9.6.2009, 19:40
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
после выхода из функции объект перестанет существовать
это С++ |
|
|
maxvanceffer |
9.6.2009, 23:11
Сообщение
#3
|
Студент Группа: Участник Сообщений: 72 Регистрация: 30.5.2009 Из: Moldova Пользователь №: 790 Спасибо сказали: 0 раз(а) Репутация: 0 |
Да уж представляю как смеялись когда отвечали ....
Да уж не подскажите где его объявлять лучше что доступ был с первой формы. |
|
|
Litkevich Yuriy |
9.6.2009, 23:27
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
maxvanceffer, если это диалог, который должен блокировать основное окно приложения, для ввода неких данных, то см. примеры в QDialog.
Если самостоятельное окно, то объяви указатель в родительском классе, а окно создавай оператором new |
|
|
igor_bogomolov |
9.6.2009, 23:29
Сообщение
#5
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Да уж представляю как смеялись когда отвечали .... Достаточно распространеная ошибка, так что никто не смеялся.В классе Splash, создай указатель на класс MainWindow MainWindow *w; В конструкторе, обнули этот указатель. Твой метод переделываем след. образом
|
|
|
maxvanceffer |
10.6.2009, 12:16
Сообщение
#6
|
Студент Группа: Участник Сообщений: 72 Регистрация: 30.5.2009 Из: Moldova Пользователь №: 790 Спасибо сказали: 0 раз(а) Репутация: 0 |
А вот тут возник такой вопрос. Вот в первой форме набралось много нужных функции для второго окна. И чтоб не переписывать их все а наследовать или как виртуальными как это можно сделать ?
|
|
|
maxvanceffer |
13.6.2009, 5:40
Сообщение
#7
|
Студент Группа: Участник Сообщений: 72 Регистрация: 30.5.2009 Из: Moldova Пользователь №: 790 Спасибо сказали: 0 раз(а) Репутация: 0 |
Вот я сделал всё по совету igor_bogomolov через указатели.
А как теперь получить обратный доступ к первой форме ? В частности её событию show(); |
|
|
Litkevich Yuriy |
13.6.2009, 10:27
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
maxvanceffer |
13.6.2009, 20:31
Сообщение
#9
|
Студент Группа: Участник Сообщений: 72 Регистрация: 30.5.2009 Из: Moldova Пользователь №: 790 Спасибо сказали: 0 раз(а) Репутация: 0 |
Просто первая прячится при открывании второй, что не плодить окон одной программы. Да и пользователь будет больше всего времени находиться в первом окне. Вот и нужно назад показать главную форму. Помогите плиз как это сделать.
|
|
|
Litkevich Yuriy |
13.6.2009, 21:27
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Если ты передаёшь во второе окно указатель на первое, то этим указателем и воспользуйся (вызови метод show())
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 8:19 |