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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Организация многооконных приложений  (Прочитано 4111 раз)
mwChief
Гость
« : Февраль 25, 2010, 21:54 »

Как правильно нужно организовывать многооконные приложения состящие из одного главного окна и n-го количества диалоговых, причем не все окна вызываются из главного, а некоторые диалоговые могут порождать другие диалоговые.
Как окнам разрешить использовать данные друг друга?
Записан
mcrads
Гость
« Ответ #1 : Февраль 25, 2010, 22:20 »

включать .h файлы. например win1.h содержит одно диалоговое окно. win2.h - другоеи из win2.h
файл win2.cpp:

#include win1.h
openNextDialog()
{
    ...
    win1 w = new win1(this);
    w->show();
    ...
}

и все. а если нужно получать доступ к членам win2 - сделайте их открытыми и обращайтесь w->chlen1 и тд
посмотрите внимательнее инфу об интерфейсе классов.
Записан
mwChief
Гость
« Ответ #2 : Февраль 25, 2010, 22:27 »

Понятно, спасибо.
Я так и делал, но у меня были сомнения в правильности.

И еще:
1. Это допустимо когда один класс не может жить без методов другого класса, но формально они никак друг с другом не связаны?
2. Наверное совсем глупый вопрос, нехочу создавать для него отдельную тему: если я использую QTableWidget добавляю новые строки и элементы QTableWidgetItem, то потом когда мне нужно удалить ставшие ненужными строки нужно ведь освободить память занятую под QTableWidgetItem. Есль ли способ сделать это для всей таблицы стразу или нужно проходить по каждому элементу? И вообще как это правильней сделать

« Последнее редактирование: Февраль 25, 2010, 22:33 от mwChief » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Февраль 25, 2010, 23:35 »

2. Наверное совсем глупый вопрос, нехочу создавать для него отдельную тему: если я использую QTableWidget добавляю новые строки и элементы QTableWidgetItem, то потом когда мне нужно удалить ставшие ненужными строки нужно ведь освободить память занятую под QTableWidgetItem. Есль ли способ сделать это для всей таблицы стразу или нужно проходить по каждому элементу? И вообще как это правильней сделать


Цитировать
void QTableWidget::clear ()   [slot]
Removes all items in the view. This will also remove all selections. The table dimensions stay the same.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #4 : Февраль 26, 2010, 00:25 »

Цитировать
1. Это допустимо когда один класс не может жить без методов другого класса, но формально они никак друг с другом не связаны?
Недопустимо если хотите повторно использовать этот код. Фактически когда хотите правильно программировать, т.к. к возможности повторного использования кода надо стремиться. Мы у себя в команде пользуемся принципами - главное окошко может знать(но может и не знать по возможности) все о дочерних окнах, дочерние окна не знают ничего о главном. Как правило главное окно разных приложений содержит разную ф-сть, и так и так не получается повторно использовать его. А дочерние наоборот можно, при этом не завязывая через h файлы друг друга. Кроме того есть еще масса способов не инклудить друг в друга h файлы - сигналы и слоты, специальные "открытые" структуры для обмена информацией между окнами.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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