Здравствуйте, гость ( Вход | Регистрация )
bigory | Дата 24.10.2010, 13:20 |
Понял, спасибо! Думаю, вопрос по открытию и закрытию диалогового окна отпал. |
|
Litkevich Yuriy | Дата 24.10.2010, 13:10 |
То что dialog.setWordCount(document().wordCount()); так и не понял для чего и что это такое это некий метод класса WordCountDialog, из примера |
|
bigory | Дата 24.10.2010, 13:06 |
Заработал вот так:
То что dialog.setWordCount(document().wordCount()); так и не понял для чего и что это такое |
|
bigory | Дата 24.10.2010, 12:25 |
Вот так?
|
|
Litkevich Yuriy | Дата 24.10.2010, 12:14 |
Не понял что значит создать объект на куче когда объект создаётся с помощью оператора new, то он создаётся в "куче".Когда объект создаётся обычным образом: то он создаётся на стекеА можно ли все таки простой пример как удалить виджет при его закрытии? поставить виджету флаг Qt::WA_DeleteOnCloseНо в твоём примере, с диалоговым окном, лучше всего диалог создавать на стеке (пример из асистента): при выходе из функции (области видимости) объект dialog будет уничтожен автоматически и немедленно.метод exec() создаёт цикл обработки событий и не даёт программе исполнятся дальше. Т.е. диалоговое окно будет модальным (не пустит в родителя). При закрытии диалога, метод exec() завершится и выполнение программы продолжится. |
|
bigory | Дата 24.10.2010, 11:30 |
А можно ли все таки простой пример как удалить виджет при его закрытии? Так вроде надежнее | |
Litkevich Yuriy | Дата 24.10.2010, 10:36 |
мне позволит автоматически удалить при закрытии окна? в случае с Qt, да. Т.к. в конструктор виджета передаётся указатель (this) на родительский виджет. Тогда родительский виджет при разрушении удалит и дочерний виджет. |
|
bigory | Дата 24.10.2010, 0:57 |
Копался по инету в поиске как автоматически освобождать память и где-то встретилось такой вариант:
Вот хочу уточнить, Dialog* a=new Dialog(this); мне позволит автоматически удалить при закрытии окна? Вот на это я наткнулся Цитата QPushButton *btn = new QPushButton(this) // обьект сам удалиться |
|
Sokoloff | Дата 22.10.2010, 23:27 |
Не понял что значит создать объект на куче Я попробовал сделать вот так: Раскрывающийся текст void MainWindow::IP() { Dialog* a=new Dialog(); a->show(); } Вот вопрос, не будет сильно влиять на память? Какой подход будет более правильным? Вот именно так будет утечка памяти. Делая new ты выделяешь память, и тут же теряешь указатель на нее, поэтому освободить уже никак не сможешь. Либо объявляй переменную в классе, отлавливай закрытие диалога и освобождай память. Или смотри в сторону флага Qt::WA_DeleteOnClose, тогда диалог сам удалится из памяти после закрытия. Скорее тебе подойдет второе. |
|
bigory | Дата 22.10.2010, 23:00 |
Не понял что значит создать объект на куче Я попробовал сделать вот так: Раскрывающийся текст void MainWindow::IP() { Dialog* a=new Dialog(); a->show(); } Вот вопрос, не будет сильно влиять на память? Какой подход будет более правильным? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 14:56 |