<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Erasing in Qt]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=16467&amp;type=atom" />
	<updated>2011-09-13T18:22:06Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=16467</id>
		<entry>
			<title type="html"><![CDATA[Re: Erasing in Qt]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=211713#p211713" />
			<content type="html"><![CDATA[<p>Наверное, вы правы и с фреймами было бы проще, но я ими никода не пользовался.<br />Сначала я пытался рисовать в QPixmap и уже его выводить на this, но там это явление<br />и обнаружилось. Идеологически я не знаю, что правильнее. Фреймы - это дополнительная<br />сущность, но вообще я первоначально тоже предполагал иметь несколько объектов<br />QPixmap и выводить то, который нужен, но и с одним не получилось.</p><p>Пётр.</p>]]></content>
			<author>
				<name><![CDATA[Peter]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5246</uri>
			</author>
			<updated>2011-09-13T18:22:06Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=211713#p211713</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Erasing in Qt]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=211697#p211697" />
			<content type="html"><![CDATA[<p>Ну я сказал &quot;сложно&quot; сокрее не в том плане, что это слоность. Скорее это как-то неправильно: есть стандартные методы, а вы пользуетесь обходными путями.<br />Раз вам нужны все эти виджеты все время работы программы, я б сделал фреймы. Достатчно скрыть/показать один объект, и вместе с ним будут скрываться/отображаться все содержащиеся&nbsp; на нем виджеты, что удобно в последующем, когда захотите добавить что либо.</p><br /><p>В прочем все это имхо.</p>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2011-09-13T17:23:52Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=211697#p211697</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Erasing in Qt]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=211693#p211693" />
			<content type="html"><![CDATA[<p>Я не считаю, что это сложно - подключить к this или отключить.<br />При подключении - да, в paintEvent() я вызываю show().<br />Т.е. в моём случе в слоте, подключённом к пукту меню, для ненужных виджетов<br />вызываются setParent(0), затем this-&gt;update(), потом для нужных виджетов<br />setParent(this), потом устaнавливается параметр для paintEvent(), в зависимости<br />от которого там рисуется то или иное и флаг для paintЕvent(), при котором она<br />делает перерисовку, а затем сбрасывает его.</p><p>Пётр.</p>]]></content>
			<author>
				<name><![CDATA[Peter]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5246</uri>
			</author>
			<updated>2011-09-13T17:11:50Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=211693#p211693</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Erasing in Qt]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=211449#p211449" />
			<content type="html"><![CDATA[<p>Ужас. Както все сложно. Хотите - выделите минимально работающий пример из вашего проекта и передайте мне - я гляну. Но как то со слов все очень непонятно и через тернии.</p><p>1. У наследников QWidget есть метод setVisible(bool) - если вам они еще могут пришодиться<br />2. Если хотите освободить память deleteLater() или delete &lt;Имя_Объекта&gt; .....<br />3. А есть классы для создания например фреймов QFrame</p>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2011-09-12T21:01:50Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=211449#p211449</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Erasing in Qt]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=211338#p211338" />
			<content type="html"><![CDATA[<p>Это виджеты, например, QComboBox и другие. Я уже нашёл, как добиться чистой<br />перерисовки экрана с другими элементами. Для этого, прежде чем paintEvent(),<br />будет его заполнять новым содержимым, надо вызвать this-&gt;update(), а перед этим<br />отключить от this те виджеты, которые не надо перерисовывать, вызовом для<br />каждого setParent(0). Если же отключать их в paintEvent(), то от них остаются следы.<br />Т.е. теперь я сначала вызываю для них setParent(0), потом вызываю this-&gt;update()<br />и после этого изменяю один параметр, в зависимости от которого в painEvent()<br />рисуется то или иное. Разумеется, для этого уже в paintEvent() для таких виджетов<br />вызывается setParent(this).</p><p>Пётр.</p>]]></content>
			<author>
				<name><![CDATA[Peter]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5246</uri>
			</author>
			<updated>2011-09-12T16:14:55Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=211338#p211338</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Erasing in Qt]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=211079#p211079" />
			<content type="html"><![CDATA[<p>Бррррр. Пошёл за несколькими литрами водки.....</p><p>Это о чем вопрос?</p><p>Где то не стыковка..... </p><p>Что у вас является содержимым окна: это элементы формы или это картинка (ни или вы элементы формы полностью сами рисуете на картинке)?</p>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2011-09-12T09:34:52Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=211079#p211079</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Erasing in Qt]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=211071#p211071" />
			<content type="html"><![CDATA[<p>Здравствуйте!</p><p>Теперь не удаётся стереть содержимое окна, если надо вывести другой вид. Qt 4.6.3.<br />Т.е. в зависимости от выбранного в меню режима работы надо выводить соответствующий вид,<br />со своими текстами и управляющими элементами. Это получается только в 1-й раз, а потом<br />очередной вид рисуется поверх 1-го, хотя я вызываю eraseRect и fillRect. И ещё во 2-й раз не выводятся<br />строки функцией drawText, выводятся только в 1-й раз. Это независимо от того, рисовать сразу в this<br />или через QPixmap.</p><p>Как это правильно делать, т.е. стереть старый вид? Установить какой-нибудь атрибут виджета или окна,<br />какой-то функцией или как? Просьба посоветовать.</p><p>Пётр.</p>]]></content>
			<author>
				<name><![CDATA[Peter]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5246</uri>
			</author>
			<updated>2011-09-12T09:20:59Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=211071#p211071</id>
		</entry>
</feed>
