<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Объясните пожалуйста ошибку]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=23032&amp;type=atom" />
	<updated>2012-06-27T15:44:01Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=23032</id>
		<entry>
			<title type="html"><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284527#p284527" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[marikk]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20103</uri>
			</author>
			<updated>2012-06-27T15:44:01Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284527#p284527</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284526#p284526" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[PhilB]]></name>
				<uri>https://linuxforum.ru/profile.php?id=9267</uri>
			</author>
			<updated>2012-06-27T15:34:47Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284526#p284526</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284521#p284521" />
			<content type="html"><![CDATA[<p>а если её на QWidget заменить?</p>]]></content>
			<author>
				<name><![CDATA[Fat-Zer]]></name>
				<uri>https://linuxforum.ru/profile.php?id=11911</uri>
			</author>
			<updated>2012-06-27T15:14:17Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284521#p284521</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284452#p284452" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[marikk]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20103</uri>
			</author>
			<updated>2012-06-27T10:17:46Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284452#p284452</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284451#p284451" />
			<content type="html"><![CDATA[<p>Так может дело в коде этой главной формы? Пошагово код проходили?</p>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2012-06-27T10:10:20Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284451#p284451</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284449#p284449" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[marikk]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20103</uri>
			</author>
			<updated>2012-06-27T10:04:22Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284449#p284449</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284448#p284448" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[marikk]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20103</uri>
			</author>
			<updated>2012-06-27T09:59:46Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284448#p284448</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284447#p284447" />
			<content type="html"><![CDATA[<p>Чуть подробнее вообще опишите. <br />В случае ошибок у вас сообщения появляются в реальности?<br />Приложение нормально завершается или вываливается с ошибкой?</p>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2012-06-27T09:51:53Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284447#p284447</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Объясните пожалуйста ошибку]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284446#p284446" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[voral]]></name>
				<uri>https://linuxforum.ru/profile.php?id=841</uri>
			</author>
			<updated>2012-06-27T09:50:16Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284446#p284446</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Объясните пожалуйста ошибку]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=284413#p284413" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[marikk]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20103</uri>
			</author>
			<updated>2012-06-27T07:56:47Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=284413#p284413</id>
		</entry>
</feed>
