Latest posts on Заполнить QComboBox из базы topichttp://python.su/forum/topic/37895/2019-10-12T10:50:35+03:00Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-12T10:50:35+03:00satfan204906Уважаемые спецы.<br/>Прошу помощи.<br/>———————-<br/>Есть текстовый файл. В нём много ссылок на ютуб. <br/>Подскажите скрипт для быстрой проверки всех ссылок на ютуб. Просто нужно в списке отметить неработающие ссылки. <br/>Заранее спасибо.
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-12T07:47:56+03:00satfan204903Уважаемые спецы.<br/>Прошу помощи.<br/>———————-<br/>Есть текстовый файл. В нём много ссылок на ютуб. <br/>Подскажите скрипт для быстрой проверки всех ссылок на ютуб. Просто нужно в списке отметить неработающие ссылки. <br/>Заранее спасибо.
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T17:04:17+03:00Yonga204900Спасибо, большое.
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T16:21:52+03:00rami204899Комбобокс пустой потому, что вы переопределяете (непонятно зачем) его в функции <strong>def combo3</strong> — делаете из него “пустышку”. Вы наверно не обратили внимания на мой предыдущий ответ. Полный код:<br/><br/><div class="code"><pre> <span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">import</span> <span class="nn">sqlite3</span>
<span class="kn">from</span> <span class="nn">PyQt5.QtWidgets</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="nn">PyQt5.QtGui</span> <span class="kn">import</span> <span class="n">QIcon</span><span class="p">,</span> <span class="n">QFont</span>
<span class="kn">from</span> <span class="nn">PyQt5.QtCore</span> <span class="kn">import</span> <span class="n">QCoreApplication</span>
<span class="k">class</span> <span class="nc">MyWin</span><span class="p">(</span><span class="n">QWidget</span><span class="p">):</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">initUI</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">initUI</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1">#comboBox1</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb8</span> <span class="o">=</span> <span class="n">QLabel</span><span class="p">(</span><span class="s2">"ComboBox_1"</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb8</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lbl</span> <span class="o">=</span> <span class="n">QLabel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lbl</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">250</span><span class="p">,</span> <span class="mi">52</span><span class="p">)</span>
<span class="n">combo</span> <span class="o">=</span> <span class="n">QComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="n">combo</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">110</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span>
<span class="n">combo</span><span class="o">.</span><span class="n">addItems</span><span class="p">([</span><span class="s2">""</span><span class="p">,</span><span class="s2">"Raion1"</span><span class="p">,</span> <span class="s2">"Raion2"</span><span class="p">,</span><span class="s2">"Raion3"</span><span class="p">,</span><span class="s2">"Raion4"</span><span class="p">,</span><span class="s2">"Raion5"</span><span class="p">])</span>
<span class="n">combo</span><span class="o">.</span><span class="n">resize</span> <span class="p">(</span><span class="mi">130</span><span class="p">,</span> <span class="mi">22</span><span class="p">)</span>
<span class="n">combo</span><span class="o">.</span><span class="n">activated</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">onActivated</span><span class="p">)</span>
<span class="n">combo</span><span class="o">.</span><span class="n">activated</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
<span class="n">combo</span><span class="o">.</span><span class="n">activated</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">combo3</span><span class="p">)</span>
<span class="c1">#comboBox3</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb10</span> <span class="o">=</span> <span class="n">QLabel</span><span class="p">(</span><span class="s2">"ComboBox_3"</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb10</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">90</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb3</span> <span class="o">=</span> <span class="n">QLabel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb3</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">250</span><span class="p">,</span> <span class="mi">90</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span> <span class="o">=</span> <span class="n">QComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">110</span><span class="p">,</span> <span class="mi">90</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span><span class="o">.</span><span class="n">resize</span> <span class="p">(</span><span class="mi">130</span><span class="p">,</span> <span class="mi">22</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span><span class="o">.</span><span class="n">activated</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">onActivated3</span><span class="p">)</span>
<span class="c1">#Close button</span>
<span class="n">qbtn</span> <span class="o">=</span> <span class="n">QPushButton</span><span class="p">(</span><span class="s1">'Close'</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
<span class="n">qbtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">close</span><span class="p">)</span>
<span class="n">qbtn</span><span class="o">.</span><span class="n">resize</span><span class="p">(</span><span class="n">qbtn</span><span class="o">.</span><span class="n">sizeHint</span><span class="p">())</span>
<span class="n">qbtn</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">450</span><span class="p">,</span> <span class="mi">450</span><span class="p">)</span>
<span class="c1">#Basic Window</span>
<span class="bp">self</span><span class="o">.</span><span class="n">resize</span><span class="p">(</span><span class="mi">600</span><span class="p">,</span> <span class="mi">520</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s1">'Center'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s1">'Locality'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">setWindowIcon</span><span class="p">(</span><span class="n">QIcon</span><span class="p">(</span><span class="s1">'port.png'</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="c1">#qLabel_1</span>
<span class="k">def</span> <span class="nf">onActivated</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lbl</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lbl</span><span class="o">.</span><span class="n">adjustSize</span><span class="p">()</span>
<span class="c1">#qLabel_3</span>
<span class="k">def</span> <span class="nf">onActivated3</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb3</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb3</span><span class="o">.</span><span class="n">adjustSize</span><span class="p">()</span>
<span class="c1">#selected raion</span>
<span class="k">def</span> <span class="nf">selected</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
<span class="n">raion</span> <span class="o">=</span> <span class="n">text</span>
<span class="k">def</span> <span class="nf">combo3</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
<span class="n">conn</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span> <span class="p">(</span><span class="s2">"Locality.db"</span><span class="p">)</span>
<span class="n">cursor</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span>
<span class="n">cursor</span><span class="o">.</span><span class="n">execute</span> <span class="p">(</span><span class="s2">"""select locality from Locality where raion=?"""</span><span class="p">,(</span><span class="n">text</span><span class="p">,))</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">cursor</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span>
<span class="n">conn</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="c1">#добавил закрытие</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span> <span class="c1">#добавил очистку виджета</span>
<span class="n">combo3list</span> <span class="o">=</span> <span class="p">[</span><span class="n">row</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">result</span><span class="p">]</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'list:'</span><span class="p">,</span> <span class="n">combo3list</span><span class="p">)</span>
<span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">combo3list</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">row</span><span class="p">)</span>
<span class="c1">#main window</span>
<span class="k">def</span> <span class="nf">center</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">qr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">frameGeometry</span><span class="p">()</span>
<span class="n">cp</span> <span class="o">=</span> <span class="n">QDesktopWidget</span><span class="p">()</span><span class="o">.</span><span class="n">availableGeometry</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">()</span>
<span class="n">qr</span><span class="o">.</span><span class="n">moveCenter</span><span class="p">(</span><span class="n">cp</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">qr</span><span class="o">.</span><span class="n">topLeft</span><span class="p">())</span>
<span class="k">def</span> <span class="nf">closeEvent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
<span class="n">reply</span> <span class="o">=</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">question</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">'Message'</span><span class="p">,</span> <span class="s2">"Are you sure to quit?"</span><span class="p">,</span>
<span class="n">QMessageBox</span><span class="o">.</span><span class="n">Yes</span> <span class="o">|</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">No</span><span class="p">,</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">No</span><span class="p">)</span>
<span class="k">if</span> <span class="n">reply</span> <span class="o">==</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">Yes</span><span class="p">:</span>
<span class="n">event</span><span class="o">.</span><span class="n">accept</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">event</span><span class="o">.</span><span class="n">ignore</span><span class="p">()</span>
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'__main__'</span><span class="p">:</span>
<span class="n">app</span> <span class="o">=</span> <span class="n">QApplication</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span>
<span class="n">my</span> <span class="o">=</span> <span class="n">MyWin</span><span class="p">()</span>
<span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">exec_</span><span class="p">())</span>
</pre></div>
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T16:09:24+03:00Yonga204898Спасибо, Rami, но к сожалению ваши рекомендации не помогли. Сам список создается но комбобокс пустой.Будто код не реагирует на функцию: <div class="code"><pre> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">combo3list</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">row</span><span class="p">)</span>
</pre></div>
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T16:01:52+03:00rami204897Понял, почему ругается на <strong> ‘MyWin’ object has no attribute ‘combo_3’</strong>. Вы не сделали что сказал Rodegast, в нужном месте.<br/><br/><br/><div class="code"><pre> <span class="n">combo_3</span> <span class="o">=</span> <span class="n">QComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="c1"># <—— заменить combo_3 на self.combo_3</span>
<span class="n">combo_3</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">90</span><span class="p">)</span> <span class="c1"># <—— заменить combo_3 на self.combo_3</span>
<span class="n">combo_3</span><span class="o">.</span><span class="n">resize</span> <span class="p">(</span><span class="mi">130</span><span class="p">,</span> <span class="mi">22</span><span class="p">)</span> <span class="c1"># <—— заменить combo_3 на self.combo_3</span>
<span class="n">combo_3</span><span class="o">.</span><span class="n">activated</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">onActivated3</span><span class="p">)</span> <span class="c1"># <—— заменить combo_3 на self.combo_3</span>
</pre></div><br/>Убрать <strong>self.combo_3 = QComboBox(self)</strong> из функции <strong>def combo3</strong>
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T15:34:02+03:00rami204895<blockquote><em>rami</em><br/>Rami, вы убрали из def combo3 строку: self.combo_3 = QComboBox(self). Я понимаю что этот виджет определен выше, но без этой строки выдает ошибку AttributeError: ‘MyWin’ object has no attribute ‘combo_3’. Спасибо.</blockquote>Я эту строку не убирал, в самом первом вашем представленном коде этой строки нет, я его поправил, а не тот, что вы опубликовали позже.
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T15:23:49+03:00Yonga204893<blockquote><em>rami</em><br/>Замените функцию:</blockquote><br/><br/>Rami, вы убрали из <u>def combo3</u> строку: <em>self.combo_3 = QComboBox(self)</em>. Я понимаю что этот виджет определен выше, но без этой строки выдает ошибку <em>AttributeError: ‘MyWin’ object has no attribute ‘combo_3’</em>. Спасибо.
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T14:25:39+03:00rami204891Замените функцию:<br/><div class="code"><pre> <span class="k">def</span> <span class="nf">combo3</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
<span class="n">conn</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="s2">"Locality.db"</span><span class="p">)</span>
<span class="n">cursor</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span>
<span class="n">cursor</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="s1">'select locality from Locality where raion=?'</span><span class="p">,(</span><span class="n">text</span><span class="p">,))</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">cursor</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span>
<span class="n">conn</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> <span class="c1">#добавил закрытие</span>
<span class="n">combo3list</span> <span class="o">=</span> <span class="p">[</span><span class="n">row</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">result</span><span class="p">]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span> <span class="c1">#добавил очистку виджета</span>
<span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">combo3list</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">row</span><span class="p">)</span> <span class="c1">#убрал индекс у row[0]</span>
</pre></div><br/>P.S. <strong>import sqlite3</strong> перенесите в начало кода к другим импортам
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T13:28:50+03:00Yonga204888<div class="code"><pre> <span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">from</span> <span class="nn">PyQt5.QtWidgets</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="nn">PyQt5.QtGui</span> <span class="kn">import</span> <span class="n">QIcon</span><span class="p">,</span> <span class="n">QFont</span>
<span class="kn">from</span> <span class="nn">PyQt5.QtCore</span> <span class="kn">import</span> <span class="n">QCoreApplication</span>
<span class="k">class</span> <span class="nc">MyWin</span><span class="p">(</span><span class="n">QWidget</span><span class="p">):</span>
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">initUI</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">initUI</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c1">#comboBox1</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb8</span> <span class="o">=</span> <span class="n">QLabel</span><span class="p">(</span><span class="s2">"ComboBox_1"</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb8</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lbl</span> <span class="o">=</span> <span class="n">QLabel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lbl</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">250</span><span class="p">,</span> <span class="mi">52</span><span class="p">)</span>
<span class="n">combo</span> <span class="o">=</span> <span class="n">QComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="n">combo</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span>
<span class="n">combo</span><span class="o">.</span><span class="n">addItems</span><span class="p">([</span><span class="s2">" "</span><span class="p">,</span><span class="s2">"Raion1"</span><span class="p">,</span> <span class="s2">"Raion2"</span><span class="p">,</span><span class="s2">"Raion3"</span><span class="p">,</span><span class="s2">"Raion4"</span><span class="p">,</span><span class="s2">"Raion5"</span><span class="p">])</span>
<span class="n">combo</span><span class="o">.</span><span class="n">resize</span> <span class="p">(</span><span class="mi">130</span><span class="p">,</span> <span class="mi">22</span><span class="p">)</span>
<span class="n">combo</span><span class="o">.</span><span class="n">activated</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">onActivated</span><span class="p">)</span>
<span class="n">combo</span><span class="o">.</span><span class="n">activated</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
<span class="n">combo</span><span class="o">.</span><span class="n">activated</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">combo3</span><span class="p">)</span>
<span class="c1">#comboBox3</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb10</span> <span class="o">=</span> <span class="n">QLabel</span><span class="p">(</span><span class="s2">"ComboBox_3"</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb10</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">30</span><span class="p">,</span> <span class="mi">90</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb3</span> <span class="o">=</span> <span class="n">QLabel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb3</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">250</span><span class="p">,</span> <span class="mi">90</span><span class="p">)</span>
<span class="n">combo_3</span> <span class="o">=</span> <span class="n">QComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="n">combo_3</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">90</span><span class="p">)</span>
<span class="n">combo_3</span><span class="o">.</span><span class="n">resize</span> <span class="p">(</span><span class="mi">130</span><span class="p">,</span> <span class="mi">22</span><span class="p">)</span>
<span class="n">combo_3</span><span class="o">.</span><span class="n">activated</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">onActivated3</span><span class="p">)</span>
<span class="c1">#Close button</span>
<span class="n">qbtn</span> <span class="o">=</span> <span class="n">QPushButton</span><span class="p">(</span><span class="s1">'Close'</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span>
<span class="n">qbtn</span><span class="o">.</span><span class="n">clicked</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">close</span><span class="p">)</span>
<span class="n">qbtn</span><span class="o">.</span><span class="n">resize</span><span class="p">(</span><span class="n">qbtn</span><span class="o">.</span><span class="n">sizeHint</span><span class="p">())</span>
<span class="n">qbtn</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="mi">450</span><span class="p">,</span> <span class="mi">450</span><span class="p">)</span>
<span class="c1">#Basic Window</span>
<span class="bp">self</span><span class="o">.</span><span class="n">resize</span><span class="p">(</span><span class="mi">600</span><span class="p">,</span> <span class="mi">520</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">center</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s1">'Center'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">setWindowTitle</span><span class="p">(</span><span class="s1">'Locality'</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">setWindowIcon</span><span class="p">(</span><span class="n">QIcon</span><span class="p">(</span><span class="s1">'port.png'</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
<span class="c1">#qLabel_1</span>
<span class="k">def</span> <span class="nf">onActivated</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lbl</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lbl</span><span class="o">.</span><span class="n">adjustSize</span><span class="p">()</span>
<span class="c1">#qLabel_3</span>
<span class="k">def</span> <span class="nf">onActivated3</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb3</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lb3</span><span class="o">.</span><span class="n">adjustSize</span><span class="p">()</span>
<span class="c1">#selected raion</span>
<span class="k">def</span> <span class="nf">selected</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
<span class="n">raion</span> <span class="o">=</span> <span class="n">text</span>
<span class="k">def</span> <span class="nf">combo3</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
<span class="kn">import</span> <span class="nn">sqlite3</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span> <span class="o">=</span> <span class="n">QComboBox</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="n">raion</span> <span class="o">=</span> <span class="n">text</span>
<span class="n">conn</span> <span class="o">=</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span> <span class="p">(</span><span class="s2">"Locality.db"</span><span class="p">)</span>
<span class="n">cursor</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">cursor</span><span class="p">()</span>
<span class="n">cursor</span><span class="o">.</span><span class="n">execute</span> <span class="p">(</span><span class="s2">"""select locality from Locality where raion=? """</span><span class="p">,(</span><span class="n">raion</span><span class="p">,))</span>
<span class="n">result</span> <span class="o">=</span> <span class="n">cursor</span><span class="o">.</span><span class="n">fetchall</span><span class="p">()</span>
<span class="n">combo3list</span> <span class="o">=</span> <span class="p">[</span><span class="n">row</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">result</span><span class="p">]</span>
<span class="k">print</span><span class="p">(</span><span class="s1">'list:'</span><span class="p">,</span> <span class="n">combo3list</span><span class="p">)</span>
<span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">combo3list</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">row</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
<span class="c1">#main window</span>
<span class="k">def</span> <span class="nf">center</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">qr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">frameGeometry</span><span class="p">()</span>
<span class="n">cp</span> <span class="o">=</span> <span class="n">QDesktopWidget</span><span class="p">()</span><span class="o">.</span><span class="n">availableGeometry</span><span class="p">()</span><span class="o">.</span><span class="n">center</span><span class="p">()</span>
<span class="n">qr</span><span class="o">.</span><span class="n">moveCenter</span><span class="p">(</span><span class="n">cp</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">qr</span><span class="o">.</span><span class="n">topLeft</span><span class="p">())</span>
<span class="k">def</span> <span class="nf">closeEvent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">event</span><span class="p">):</span>
<span class="n">reply</span> <span class="o">=</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">question</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">'Message'</span><span class="p">,</span>
<span class="s2">"Are you sure to quit?"</span><span class="p">,</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">Yes</span> <span class="o">|</span>
<span class="n">QMessageBox</span><span class="o">.</span><span class="n">No</span><span class="p">,</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">No</span><span class="p">)</span>
<span class="k">if</span> <span class="n">reply</span> <span class="o">==</span> <span class="n">QMessageBox</span><span class="o">.</span><span class="n">Yes</span><span class="p">:</span>
<span class="n">event</span><span class="o">.</span><span class="n">accept</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">event</span><span class="o">.</span><span class="n">ignore</span><span class="p">()</span>
<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">'__main__'</span><span class="p">:</span>
<span class="n">app</span> <span class="o">=</span> <span class="n">QApplication</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span>
<span class="n">my</span> <span class="o">=</span> <span class="n">MyWin</span><span class="p">()</span>
<span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">app</span><span class="o">.</span><span class="n">exec_</span><span class="p">())</span>
</pre></div>
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T12:23:20+03:00rami204885Выложите базу <strong>Locality.db</strong>
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T10:22:01+03:00Yonga204882<blockquote><em>rami</em><br/>Вам надо наверно так:</blockquote>Ошибка исчезла, <em>print(combo3list)</em> - выдает список, но комбобокс пустой.
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T09:17:29+03:00rami204880Вам надо наверно так:<br/><div class="code"><pre> <span class="bp">self</span><span class="o">.</span><span class="n">combo_3</span><span class="o">.</span><span class="n">addItem</span><span class="p">(</span><span class="n">row</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
</pre></div>
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-11T08:48:58+03:00Yonga204879Rodegast, спасибо за советы. Первую програмульку (это вторая) создал с помощью QTDesigner. С ним графическую часть конечно намного проще рисовать. Но, по скольку некоторые спецы пишут что дизайнером в коде добавляется много “мусора”, попробовал без него. Может быть когда будет готова, попробую перерисовать в дизайнере (для сравнения). Что касается 3 совета <em>(Надо его определять как self.combo_3 = QComboBox(self) и обращаться к нему через self.combo_3)</em>, помогло, но вышла уже другая ошибка: <em>QComboBox.addItems(list-of-str): argument 1 has unexpected type ‘str’</em> - аргумент 1 имеет неожиданный тип ‘str’. Хотя командой<em> print(type(combo3list))</em> получаю ответ: <em><class ‘list’></em>.
Общий :: Python для новичков :: Заполнить QComboBox из базы
2019-10-10T16:52:34+03:00Rodegast2048741) Научись пользоваться дизайнером<br/>2) Метод initUI вообще не нужен, всё что в нём у тебя написано нужно перенести в __init__<br/>3) combo_3 не является атрибутом, по этому ты к нему и обратиться не можешь. Надо его определять как self.combo_3 = QComboBox(self) и обращаться к нему через self.combo_3.