<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Объясните пожалуйста ошибку]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=23032</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=23032&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Объясните пожалуйста ошибку».]]></description>
		<lastBuildDate>Wed, 27 Jun 2012 15:44:01 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=284527#p284527</link>
			<description><![CDATA[<div class="quotebox"><cite>PhilB пишет:</cite><blockquote><div class="quotebox"><cite>marikk пишет:</cite><blockquote><p>&nbsp; &nbsp; &nbsp; &nbsp; if (db.open()){<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; form v;&nbsp; &nbsp;// главная форма<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v.show();<br />&nbsp; &nbsp; &nbsp; &nbsp; }</p></blockquote></div><p>Я так понимаю, что форму v необходимо объявить сразу после QApplication a(argc, argv);, т.к. она у вас создается, отображается, после чего v выходит из области видимости, и для нее вызвается деструктор, т.е. форма уничтожается.</p></blockquote></div><p>Так то оно выводит, но не знаю чево мне в голову взбрело создавать обьект после коннекта к базе. Наверно придется так сделать. Ошибку понял всем спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (marikk)]]></author>
			<pubDate>Wed, 27 Jun 2012 15:44:01 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=284527#p284527</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=284526#p284526</link>
			<description><![CDATA[<div class="quotebox"><cite>marikk пишет:</cite><blockquote><p>&nbsp; &nbsp; &nbsp; &nbsp; if (db.open()){<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; form v;&nbsp; &nbsp;// главная форма<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; v.show();<br />&nbsp; &nbsp; &nbsp; &nbsp; }</p></blockquote></div><p>Я так понимаю, что форму v необходимо объявить сразу после QApplication a(argc, argv);, т.к. она у вас создается, отображается, после чего v выходит из области видимости, и для нее вызвается деструктор, т.е. форма уничтожается.</p>]]></description>
			<author><![CDATA[null@example.com (PhilB)]]></author>
			<pubDate>Wed, 27 Jun 2012 15:34:47 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=284526#p284526</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=284521#p284521</link>
			<description><![CDATA[<p>а если её на QWidget заменить?</p>]]></description>
			<author><![CDATA[null@example.com (Fat-Zer)]]></author>
			<pubDate>Wed, 27 Jun 2012 15:14:17 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=284521#p284521</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=284452#p284452</link>
			<description><![CDATA[<p>Код формы самый простой, для отладки алгоритма.</p><div class="codebox"><pre><code>QHBoxLayout *lay = new QHBoxLayout;
QPushButton *org = new QPushButton(tr(&quot;hi&quot;));
lay-&gt;addWidget(org);
setLayout(lay);</code></pre></div><p>Что примечательно, если обьявить обьект v и вызвать метод show док коннекта с базай данных:</p><div class="codebox"><pre><code>         ..............
         form v;   // главная форма
         v.show();
         if (db.open()){
         .............</code></pre></div><p>все отработает нормально и вызывается форма и происходит подключение к базе.</p><p>Мне кажется сам алгоритм криво задуман. Хотелось бы узнать как правильно, но нигде найти не могу <img src="https://linuxforum.ru/img/smilies/ac.gif" alt="ac" /></p>]]></description>
			<author><![CDATA[null@example.com (marikk)]]></author>
			<pubDate>Wed, 27 Jun 2012 10:17:46 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=284452#p284452</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=284451#p284451</link>
			<description><![CDATA[<p>Так может дело в коде этой главной формы? Пошагово код проходили?</p>]]></description>
			<author><![CDATA[null@example.com (voral)]]></author>
			<pubDate>Wed, 27 Jun 2012 10:10:20 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=284451#p284451</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=284449#p284449</link>
			<description><![CDATA[<div class="quotebox"><cite>voral пишет:</cite><blockquote><p>Чуть подробнее вообще опишите. <br />В случае ошибок у вас сообщения появляются в реальности?<br />Приложение нормально завершается или вываливается с ошибкой?</p></blockquote></div><p>В случае отмены (закрытия, выбива) формы авторизации исполнение попадает на return a.exec();<br />В случае ошибки коннекта к базе данным выдается месадж бокс содержащий ошибку коннекта далее на return a.exec();<br />В случае подтвержданеия идет конект с базой дальше создание обьекта v;</p><p>В любом случае приложение остается в подвешеном состоянии, ошибок не выдает.</p>]]></description>
			<author><![CDATA[null@example.com (marikk)]]></author>
			<pubDate>Wed, 27 Jun 2012 10:04:22 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=284449#p284449</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=284448#p284448</link>
			<description><![CDATA[<div class="quotebox"><cite>voral пишет:</cite><blockquote><p>Для начала проверьте с каким кодом у вас закрывается форма авторизации.<br /></p><div class="codebox"><pre><code>#include &lt;QDebug&gt;
.......

int main(int argc, char *argv[])
{
     autn w;
     qDebug() &lt;&lt; w.exec();
     return 0
}</code></pre></div></blockquote></div><p>Форма авторизации закрывается с кодом 1, Дальше происходит коннект к базе, потом отрабатывает конструктор объекта v. Но вот метод show (v.show();) не дает никакого результата, дальше исполнение идет по алгоритму.</p>]]></description>
			<author><![CDATA[null@example.com (marikk)]]></author>
			<pubDate>Wed, 27 Jun 2012 09:59:46 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=284448#p284448</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=284447#p284447</link>
			<description><![CDATA[<p>Чуть подробнее вообще опишите. <br />В случае ошибок у вас сообщения появляются в реальности?<br />Приложение нормально завершается или вываливается с ошибкой?</p>]]></description>
			<author><![CDATA[null@example.com (voral)]]></author>
			<pubDate>Wed, 27 Jun 2012 09:51:53 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=284447#p284447</guid>
		</item>
		<item>
			<title><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=284446#p284446</link>
			<description><![CDATA[<p>Для начала проверьте с каким кодом у вас закрывается форма авторизации.<br /></p><div class="codebox"><pre><code>#include &lt;QDebug&gt;
.......

int main(int argc, char *argv[])
{
     autn w;
     qDebug() &lt;&lt; w.exec();
     return 0
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (voral)]]></author>
			<pubDate>Wed, 27 Jun 2012 09:50:16 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=284446#p284446</guid>
		</item>
		<item>
			<title><![CDATA[Объясните пожалуйста ошибку]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=284413#p284413</link>
			<description><![CDATA[<p>Пытаюсь сделать следующее: при запуске приложения вылетает окно авторизации, туда вводятся параметры подключения к базе данных далее если подключение успешно выводится основная форма, если нет, сообщение об ошибке и на выход. <br /></p><div class="codebox"><pre><code>int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    auth w; // форма авторизации QDialog
    if (w.exec()){
        QSqlDatabase db = QSqlDatabase::addDatabase(&quot;QPSQL&quot;);
        db.setHostName(w.data.at(0)); // w.data - QStringList содержащий параметры подключения
        db.setUserName(w.data.at(1));
        db.setPassword(w.data.at(2));
        db.setDatabaseName(w.data.at(3));
        db.setPort(w.data.at(4).toInt());
        if (db.open()){
            form v;   // главная форма
            v.show();
        }
        else {
            QMessageBox msgBox;
            msgBox.setText(&quot;Connect was failed&quot;);
            msgBox.setInformativeText(db.lastError().text());
            msgBox.setStandardButtons(QMessageBox::Ok);
            msgBox.exec();

        }
    }
    return a.exec();
}</code></pre></div><p>Интересно почему форма ( form v) не отрабатывает show().</p>]]></description>
			<author><![CDATA[null@example.com (marikk)]]></author>
			<pubDate>Wed, 27 Jun 2012 07:56:47 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=284413#p284413</guid>
		</item>
	</channel>
</rss>
