<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[Решен]Сигнали и слотове buttonbox и pushbutton]]></title><description><![CDATA[<p dir="auto">Здравейте :)<br />
Искам да свържа бутонче Open от buttonbox, така, че да прави същото, като че ли pushbutton-а е натиснат.<br />
Аз пиша следния код:<br />
@    connect(ui-&gt;buttonBox-&gt;button(QDialogButtonBox::Open), SIGNAL(clicked()), this, SLOT(on_pushButton_clicked()));<br />
@<br />
нямам изписани грешки, но вместо да се отвари новият диалог, настоящият се затваря.<br />
Имам 2 бутона в buttonbox-а и целият код, който се грижи за тях е:<br />
@void Songs::on_buttonBox_clicked(QAbstractButton *button)<br />
{<br />
connect(ui-&gt;buttonBox-&gt;button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(close()));<br />
connect(ui-&gt;buttonBox-&gt;button(QDialogButtonBox::Open), SIGNAL(clicked()), this, SLOT(on_pushButton_clicked()));<br />
}<br />
@<br />
Кодът който седи в on_pushButton_clicked() е:<br />
@void Songs::on_pushButton_clicked()<br />
{</p>
<pre><code>Lyrics lyricswin;
lyricswin.setModal(true);
lyricswin.showMaximized();
lyricswin.exec(&amp;#41;;
</code></pre>
<p dir="auto">}<br />
@<br />
Някой може ли да ми обясни къде бъркам?</p>
]]></description><link>https://forum.qt.io/topic/9006/решен-сигнали-и-слотове-buttonbox-и-pushbutton</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 05:12:03 GMT</lastBuildDate><atom:link href="https://forum.qt.io/topic/9006.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Aug 2011 09:13:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Решен]Сигнали и слотове buttonbox и pushbutton on Sun, 28 Aug 2011 11:04:19 GMT]]></title><description><![CDATA[<p dir="auto">Открих си грешката :) просто е трябвало други сигнали да взимам :)<br />
@void Songs::on_buttonBox_clicked(QAbstractButton *button)<br />
{<br />
connect(ui-&gt;buttonBox, SIGNAL(accepted()), this, SLOT(on_pushButton_clicked()));<br />
connect(ui-&gt;buttonBox, SIGNAL(rejected()), this, SLOT(close()));<br />
}@<br />
така работи, както исках :)</p>
]]></description><link>https://forum.qt.io/post/107184</link><guid isPermaLink="true">https://forum.qt.io/post/107184</guid><dc:creator><![CDATA[[[global:former-user]]]]></dc:creator><pubDate>Sun, 28 Aug 2011 11:04:19 GMT</pubDate></item><item><title><![CDATA[Reply to [Решен]Сигнали и слотове buttonbox и pushbutton on Sun, 28 Aug 2011 10:37:56 GMT]]></title><description><![CDATA[<p dir="auto">Ама на мен отварянето на новия прозорец ми е в void Songs::on_pushButton_clicked().<br />
Когато се изпълнява този код се намирам в прозорец който се казва songswin, а като се натисне бутона се създава lyricswin.</p>
]]></description><link>https://forum.qt.io/post/107183</link><guid isPermaLink="true">https://forum.qt.io/post/107183</guid><dc:creator><![CDATA[[[global:former-user]]]]></dc:creator><pubDate>Sun, 28 Aug 2011 10:37:56 GMT</pubDate></item><item><title><![CDATA[Reply to [Решен]Сигнали и слотове buttonbox и pushbutton on Sun, 28 Aug 2011 10:24:11 GMT]]></title><description><![CDATA[<p dir="auto">Не да размениш твоите конецкии, то има и други които не виждаш. Те се създават първи и за това първи се изпълняват.</p>
<p dir="auto">Според мен най-лесно ще е ето така:</p>
<p dir="auto">@<br />
void Songs::on_pushButton_clicked()<br />
{</p>
<pre><code>Lyrics lyricswin;
lyricswin.setModal(true);
lyricswin.showMaximized();
int res = lyricswin.exec&amp;#40;&amp;#41;;

if ( res == QDialogButtonBox::Open )
{
    // създаваш си другият прозорец и му даваш exec&amp;#40;&amp;#41;
}
</code></pre>
<p dir="auto">}<br />
@</p>
]]></description><link>https://forum.qt.io/post/107182</link><guid isPermaLink="true">https://forum.qt.io/post/107182</guid><dc:creator><![CDATA[task_struct]]></dc:creator><pubDate>Sun, 28 Aug 2011 10:24:11 GMT</pubDate></item><item><title><![CDATA[Reply to [Решен]Сигнали и слотове buttonbox и pushbutton on Sun, 28 Aug 2011 10:18:17 GMT]]></title><description><![CDATA[<p dir="auto">Ами размених им местата, за да видя какво ще се получи-  същия резултат.<br />
Не ми трябва да е отворен настоящият прозорец, искам да ми се отвори следващият, но именно свързването на Open с отварянето на новия не ми се получава.<br />
Мислех си, че нещо не съм схванала сигналите и слотовете, но не ми изкарва грешка за тях.</p>
]]></description><link>https://forum.qt.io/post/107178</link><guid isPermaLink="true">https://forum.qt.io/post/107178</guid><dc:creator><![CDATA[[[global:former-user]]]]></dc:creator><pubDate>Sun, 28 Aug 2011 10:18:17 GMT</pubDate></item><item><title><![CDATA[Reply to [Решен]Сигнали и слотове buttonbox и pushbutton on Sun, 28 Aug 2011 10:10:35 GMT]]></title><description><![CDATA[<p dir="auto">Според мен нещо се обърква с exec-a. Всеки такъв exec() си създава свой eventloop и само слотове/сигнали свързани с него могат да бъдат извикани.</p>
<p dir="auto">Даже май точно това става. Когато натиснеш Open бутона. Той казва <em>Натиснаха ме</em>. Eventloop-а започва да обработва слотовете за тоя сигнал. Единият е <em>Затвори прозореца</em>, другия е твоя <em>Отвори нов прозорец</em>. Затварянето се изпълнява първо и затваря прозореца и унищожава eventloop-а, с което прекратява и изпълнението на всички други слотове, регистрирани в него.</p>
<p dir="auto">Ако искаш тоя диалог да си остане отворен, трябва да видиш в документацията има ли начин да му кажеш да не се затваря при натискане на бутон от buttonbox-а.</p>
<p dir="auto">Ако не държиш да остава отворен, а само новият да се покаже. Може да гледаш резултата от exec() и когато той е, че е натиснат Open да създаде новият диалог.</p>
]]></description><link>https://forum.qt.io/post/107177</link><guid isPermaLink="true">https://forum.qt.io/post/107177</guid><dc:creator><![CDATA[task_struct]]></dc:creator><pubDate>Sun, 28 Aug 2011 10:10:35 GMT</pubDate></item><item><title><![CDATA[Reply to [Решен]Сигнали и слотове buttonbox и pushbutton on Sun, 28 Aug 2011 09:58:36 GMT]]></title><description><![CDATA[<p dir="auto">Да, правилно си разбрал идеята ми. Според мен трябва да може да се променя функционалността на бутоните, иначе няма логика да имат различни имена. QDialogButtonBox::Open 0x00002000 A "Open" button defined with the AcceptRole.<br />
Трябва да отваня нещо, нали?</p>
]]></description><link>https://forum.qt.io/post/107176</link><guid isPermaLink="true">https://forum.qt.io/post/107176</guid><dc:creator><![CDATA[[[global:former-user]]]]></dc:creator><pubDate>Sun, 28 Aug 2011 09:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to [Решен]Сигнали и слотове buttonbox и pushbutton on Sun, 28 Aug 2011 09:50:32 GMT]]></title><description><![CDATA[<p dir="auto">Здравей,</p>
<p dir="auto">не разбирах точно. Искаш Open бутона на диалога да прави същото като някакъв QPushButton, който седи във основният ти прозорец?</p>
<p dir="auto">Мисля, че всички бутони в buttonbox–а на диалоговият прозорец са свързани и със слот, който затваря диалога.</p>
]]></description><link>https://forum.qt.io/post/107175</link><guid isPermaLink="true">https://forum.qt.io/post/107175</guid><dc:creator><![CDATA[task_struct]]></dc:creator><pubDate>Sun, 28 Aug 2011 09:50:32 GMT</pubDate></item></channel></rss>