<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
					xmlns:content="http://purl.org/rss/1.0/modules/content/"
					xmlns:wfw="http://wellformedweb.org/CommentAPI/"
					xmlns:atom="http://www.w3.org/2005/Atom"
				  >
<channel>
<atom:link rel="self"  type="application/rss+xml"  href="http://rulinux.net/rss_from_sect_4_subsect_6_thread_7945"  />
<title>rulinux.net - Форум - Development - [Qt]Глюки с MouseMoveEvent</title>
<link>http://rulinux.net/</link>
<description><![CDATA[Портал о GNU/Linux и не только]]></description>
<image><title>rulinux.net - Форум - Development - [Qt]Глюки с MouseMoveEvent</title>
<link>http://rulinux.net/</link>
<url>http://rulinux.net/rss_icon.png</url>
</image>
<item>
<title>Re: [Qt]Глюки с MouseMoveEvent</title>
<link>https://rulinux.net/message.php?newsid=7945&amp;page=1#59114</link>
<guid>https://rulinux.net/message.php?newsid=7945&amp;page=1#59114</guid>
<pubDate>Fri, 13 Aug 2010 08:48:17 +0400</pubDate>
<description><![CDATA[<p>А с mouseReleaseEvent происходит еще более фееричные глюки. Такая конструкция:</p><p>main.cpp</p><p><fieldset><legend>cpp-qt</legend><code><br />
<span style="color: #006E28;">#include &quot;progressbar.h&quot;</span><br />
<span style="color: #006E28;">#include </span><br />
<br />
<span style="color: #0057AE;">int</span> main<span style="color: #006E28;">&#40;</span><span style="color: #0057AE;">int</span> argc<span style="color: #006E28;">,</span> <span style="color: #0057AE;">char</span> <span style="color: #006E28;">*</span> argv<span style="color: #006E28;">&#91;</span><span style="color: #006E28;">&#93;</span><span style="color: #006E28;">&#41;</span><br />
<span style="color: #006E28;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://doc.crossplatform.ru/qt/latest/qapplication.html"><span style="color: #22aadd;">QApplication</span></a> app<span style="color: #006E28;">&#40;</span>argc<span style="color: #006E28;">,</span> argv<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ProgressBar <span style="color: #006E28;">*</span>m_slider <span style="color: #006E28;">=</span> <span style="color: #000000; font-weight:bold;">new</span> ProgressBar <span style="color: #006E28;">&#40;</span>Qt<span style="color: #006E28;">::</span><span style="color: #2B74C7;">Horizontal</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; m_slider<span style="color: #006E28;">-&gt;</span><span style="color: #2B74C7;">show</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight:bold;">return</span> app.<span style="color: #2B74C7;">exec</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
<span style="color: #006E28;">&#125;</span><br />
&nbsp;</code></fieldset></p><p>progressbar.cpp:</p><p><fieldset><legend>cpp-qt</legend><code><br />
<span style="color: #006E28;">#include &quot;progressbar.h&quot;</span><br />
<span style="color: #006E28;">#include </span><br />
<span style="color: #006E28;">#include </span><br />
<br />
ProgressBar<span style="color: #006E28;">::</span><span style="color: #2B74C7;">ProgressBar</span><span style="color: #006E28;">&#40;</span>Qt<span style="color: #006E28;">::</span><span style="color: #2B74C7;">Orientation</span> orientation<span style="color: #006E28;">,</span> <a href="http://doc.crossplatform.ru/qt/latest/qwidget.html"><span style="color: #22aadd;">QWidget</span></a> <span style="color: #006E28;">*</span>parent<span style="color: #006E28;">&#41;</span> <span style="color: #006E28;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://doc.crossplatform.ru/qt/latest/qslider.html"><span style="color: #22aadd;">QSlider</span></a><span style="color: #006E28;">&#40;</span>parent<span style="color: #006E28;">&#41;</span><br />
<span style="color: #006E28;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; setOrientation<span style="color: #006E28;">&#40;</span>orientation<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
<span style="color: #006E28;">&#125;</span><br />
<br />
<span style="color: #0057AE;">void</span> ProgressBar<span style="color: #006E28;">::</span><span style="color: #2B74C7;">mouseReleaseEvent</span> <span style="color: #006E28;">&#40;</span><a href="http://doc.crossplatform.ru/qt/latest/qmouseevent.html"><span style="color: #22aadd;">QMouseEvent</span></a><span style="color: #006E28;">*</span> event<span style="color: #006E28;">&#41;</span><br />
<span style="color: #006E28;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight:bold;">if</span> <span style="color: #006E28;">&#40;</span>event<span style="color: #006E28;">-&gt;</span><span style="color: #2B74C7;">button</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span> <span style="color: #006E28;">==</span> Qt<span style="color: #006E28;">::</span><span style="color: #2B74C7;">LeftButton</span><span style="color: #006E28;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006E28;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; event<span style="color: #006E28;">-&gt;</span><span style="color: #2B74C7;">ignore</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0057AE;">double</span> k <span style="color: #006E28;">=</span> <span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#40;</span><span style="color: #0057AE;">double</span><span style="color: #006E28;">&#41;</span>event<span style="color: #006E28;">-&gt;</span><span style="color: #2B74C7;">x</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">/</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#40;</span><span style="color: #0057AE;">double</span><span style="color: #006E28;">&#41;</span>width<span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0057AE;">int</span> a <span style="color: #006E28;">=</span> k<span style="color: #006E28;">*</span><span style="color: #006E28;">&#40;</span>maximum<span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setValue<span style="color: #006E28;">&#40;</span>a<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006E28;">&#125;</span><br />
<span style="color: #006E28;">&#125;</span><br />
&nbsp;</code></fieldset></p><p>progressbar.h:</p><p><fieldset><legend>cpp-qt</legend><code><br />
<span style="color: #006E28;">#ifndef PROGRESSBAR_H</span><br />
<span style="color: #006E28;">#define PROGRESSBAR_H</span><br />
<br />
<span style="color: #006E28;">#include </span><br />
<br />
<span style="color: #0057AE;">class</span> QMouseEvent<span style="color: #006E28;">;</span><br />
<br />
<span style="color: #0057AE;">class</span> ProgressBar <span style="color: #006E28;">:</span> <span style="color: #0057AE;">public</span> <a href="http://doc.crossplatform.ru/qt/latest/qslider.html"><span style="color: #22aadd;">QSlider</span></a><br />
<span style="color: #006E28;">&#123;</span><br />
<span style="color: #0057AE;">Q_OBJECT</span><br />
<span style="color: #0057AE;">public</span><span style="color: #006E28;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0057AE;">explicit</span> ProgressBar<span style="color: #006E28;">&#40;</span>Qt<span style="color: #006E28;">::</span><span style="color: #2B74C7;">Orientation</span><span style="color: #006E28;">,</span> <a href="http://doc.crossplatform.ru/qt/latest/qwidget.html"><span style="color: #22aadd;">QWidget</span></a> <span style="color: #006E28;">*</span>parent <span style="color: #006E28;">=</span> 0<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
<br />
<span style="color: #0057AE;">signals</span><span style="color: #006E28;">:</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0057AE;">void</span> pbValueChanged<span style="color: #006E28;">&#40;</span><span style="color: #0057AE;">int</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
<span style="color: #0057AE;">public</span> <span style="color: #0057AE;">slots</span><span style="color: #006E28;">:</span><br />
<br />
<span style="color: #0057AE;">protected</span><span style="color: #006E28;">:</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0057AE;">void</span> mouseReleaseEvent <span style="color: #006E28;">&#40;</span> <a href="http://doc.crossplatform.ru/qt/latest/qmouseevent.html"><span style="color: #22aadd;">QMouseEvent</span></a><span style="color: #006E28;">*</span> event <span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
<span style="color: #006E28;">&#125;</span><span style="color: #006E28;">;</span><br />
<br />
<span style="color: #006E28;">#endif // PROGRESSBAR_H</span><br />
&nbsp;</code></fieldset></p><p>slider.pro:</p><p><fieldset><legend>ini</legend><code><br />
<br />
SOURCES +<span style="color: #000066; font-weight:bold;">=</span> \<br />
&nbsp; &nbsp; main.cpp \<br />
&nbsp; &nbsp; progressbar.cpp<br />
<br />
HEADERS +<span style="color: #000066; font-weight:bold;">=</span> \<br />
&nbsp; &nbsp; progressbar.h<br />
<br />
&nbsp;</code></fieldset></p><p>при клике по слайдеру он потихоньку доходит до конца. Это что бага Куте, или я чего-то не понимаю?</p>]]></description>
</item>
<item>
<title>Re: [Qt]Глюки с MouseMoveEvent</title>
<link>https://rulinux.net/message.php?newsid=7945&amp;page=1#59113</link>
<guid>https://rulinux.net/message.php?newsid=7945&amp;page=1#59113</guid>
<pubDate>Fri, 13 Aug 2010 06:29:04 +0400</pubDate>
<description><![CDATA[<p>хм. тогда мб стоит использовать mouseReleaseEvent вместо move?</p>]]></description>
</item>
<item>
<title>Re: [Qt]Глюки с MouseMoveEvent</title>
<link>https://rulinux.net/message.php?newsid=7945&amp;page=1#59112</link>
<guid>https://rulinux.net/message.php?newsid=7945&amp;page=1#59112</guid>
<pubDate>Fri, 13 Aug 2010 06:18:01 +0400</pubDate>
<description><![CDATA[<p><i>>и почему с valueChanged не вариант?</i><br> А ты глянь на libqmmpui, поймешь. Сырой он еще. Существует не очень давно. Хоткеи там кстати через библиотеку обрабатываются. Там не было только обработки передвижения мышью. Да и KeyPressEvent для виджета отловить не сложно.</p>]]></description>
</item>
<item>
<title>Re: [Qt]Глюки с MouseMoveEvent</title>
<link>https://rulinux.net/message.php?newsid=7945&amp;page=1#59111</link>
<guid>https://rulinux.net/message.php?newsid=7945&amp;page=1#59111</guid>
<pubDate>Fri, 13 Aug 2010 06:03:18 +0400</pubDate>
<description><![CDATA[<p><i>>Поэтому я решил унаследоваться от QSlider и отлавливать MouseMoveEvent.</i><br></p><p>это вот это не вариант. что будешь делать если его станут перетаскивать хоткеями? и почему с valueChanged не вариант?</p>]]></description>
</item>
<item>
<title>[Qt]Глюки с MouseMoveEvent</title>
<link>https://rulinux.net/message.php?newsid=7945&amp;page=1#59110</link>
<guid>https://rulinux.net/message.php?newsid=7945&amp;page=1#59110</guid>
<pubDate>Fri, 13 Aug 2010 04:59:00 +0400</pubDate>
<description><![CDATA[<p>Мне нужно отлавливать событие передвижения ползунка в прогрессбаре. коннектить valueChanged со слотом обработки не вариант. Поэтому я решил унаследоваться от QSlider и отлавливать MouseMoveEvent.</p><p>Реализация:</p><p><fieldset><legend>cpp-qt</legend><code><br />
<span style="color: #0057AE;">void</span> ProgressBar<span style="color: #006E28;">::</span><span style="color: #2B74C7;">mouseMoveEvent</span> <span style="color: #006E28;">&#40;</span><a href="http://doc.crossplatform.ru/qt/latest/qmouseevent.html"><span style="color: #22aadd;">QMouseEvent</span></a><span style="color: #006E28;">*</span> event <span style="color: #006E28;">&#41;</span><br />
<span style="color: #006E28;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; event<span style="color: #006E28;">-&gt;</span><span style="color: #2B74C7;">ignore</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0057AE;">double</span> k <span style="color: #006E28;">=</span> <span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#40;</span><span style="color: #0057AE;">double</span><span style="color: #006E28;">&#41;</span>event<span style="color: #006E28;">-&gt;</span><span style="color: #2B74C7;">x</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">/</span><span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#40;</span><span style="color: #0057AE;">double</span><span style="color: #006E28;">&#41;</span>width<span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0057AE;">int</span> a <span style="color: #006E28;">=</span> k<span style="color: #006E28;">*</span><span style="color: #006E28;">&#40;</span>maximum<span style="color: #006E28;">&#40;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; setValue<span style="color: #006E28;">&#40;</span>a<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; emit pbValueChanged<span style="color: #006E28;">&#40;</span>a<span style="color: #006E28;">&#41;</span><span style="color: #006E28;">;</span><br />
<span style="color: #006E28;">&#125;</span><br />
&nbsp;</code></fieldset></p><p>Собственно теперь проблема. Если в системе использутеся тема позволяющая перетаскивать окна за содержимое без нажатия кнопки Alt(Oxygen-transperent, QtCurve) то при перемещении ползунка он сдвигается на 10 пикселов и останавливается, при этом начинает передвигаться само окно за курсором. Остальные ползунки работают нормально. В темах которые не позволяют таскать окно за содержимое(Redmond, Plastique) такого тоже не происходит.</p>]]></description>
</item>
</channel>
</rss>