Latest posts on создание GUI приложения на python topichttp://python.su/forum/topic/39613/2020-11-09T12:08:53+02:00Общий :: GUI :: создание GUI приложения на python
2020-11-09T12:08:53+02:00Mark28212949<blockquote><em>DOOMer</em><br/>Ошибка “AttrubuteError: ‘UI_MainWindow’ object has no attribute ‘btn_search’” - имена объекто пользовательского интерфеса (кнопки, поля ввода, etc) в вашем .ui файле не совпадают, с теми, которые в моём коде-примере.Открывайте ваш .ui файл в QtDesigner-е, и смотрите какие значения у свойства “objectName” у ваших кнопок и других UI-элементов (в моём коде две QPushButton, QLable, QLineEdit - все что в self.ui.*).p.s. Трейсбэки ошибок лучше всё-таки выкладывать в виде текста, а не скриншота (на будущее).</blockquote><br/><br/>Спасибо большое !!!
Общий :: GUI :: создание GUI приложения на python
2020-11-09T10:45:47+02:00DOOMer212947Ошибка “AttrubuteError: ‘UI_MainWindow’ object has no attribute ‘btn_search’” - имена объекто пользовательского интерфеса (кнопки, поля ввода, etc) в вашем .ui файле не совпадают, с теми, которые в моём коде-примере.<br/><br/>Открывайте ваш .ui файл в QtDesigner-е, и смотрите какие значения у свойства “objectName” у ваших кнопок и других UI-элементов (в моём коде две QPushButton, QLable, QLineEdit - все что в self.ui.*).<br/><br/>p.s. Трейсбэки ошибок лучше всё-таки выкладывать в виде текста, а не скриншота (на будущее).
Общий :: GUI :: создание GUI приложения на python
2020-11-09T09:01:11+02:00Mark28212946<blockquote><em>DOOMer</em><br/>Как-то так:</blockquote>спасибо большое!!! какая-то ошибка выходит, буду разбираться, буду очень благодарен, если подскажите!
Общий :: GUI :: создание GUI приложения на python
2020-11-09T00:32:19+02:00DOOMer212943Как-то так:<br/><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="n">QApplication</span><span class="p">,</span> <span class="n">QMainWindow</span>
<span class="kn">from</span> <span class="nn">test_design</span> <span class="kn">import</span> <span class="n">Ui_MainWindow</span>
<span class="k">class</span> <span class="nc">ExampleApp</span><span class="p">(</span><span class="n">QMainWindow</span><span class="p">):</span>
<span class="c1"># списки стран по континентам (под каждый континент - отдельный список без заморочек)</span>
<span class="n">europe</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"россия"</span><span class="p">,</span> <span class="s2">"украина"</span><span class="p">,</span> <span class="s2">"беларусь"</span><span class="p">,</span> <span class="s2">"нолдова"</span><span class="p">,</span> <span class="p">]</span> <span class="c1"># add more if need</span>
<span class="n">asia</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"япония"</span><span class="p">,</span> <span class="s2">"китай"</span><span class="p">,</span> <span class="s2">"корея"</span><span class="p">,</span> <span class="p">]</span> <span class="c1"># add more if need</span>
<span class="n">north_america</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"сша"</span><span class="p">,</span> <span class="s2">"канада"</span><span class="p">,</span> <span class="s2">"мексика"</span><span class="p">,</span> <span class="p">]</span> <span class="c1"># add more if need</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="n">ExampleApp</span><span class="p">,</span> <span class="bp">self</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">ui</span> <span class="o">=</span> <span class="n">Ui_MainWindow</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">setupUi</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
<span class="c1"># соединяем событие "нажатие" у кнопок с соответтсвующими слотами</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">btn_search</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">search_country</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">btn_clear</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">clear_search_field</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">search_country</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">"""</span>
<span class="sd"> Функция, вызываемая по нажатию кнопки поиска</span>
<span class="sd"> """</span>
<span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">edit_search</span><span class="o">.</span><span class="n">text</span><span class="p">()</span>
<span class="k">if</span> <span class="n">query</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">europe</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">label_result</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="s2">"Европа"</span><span class="p">)</span>
<span class="k">if</span> <span class="n">query</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">asia</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">label_result</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="s2">"Азия"</span><span class="p">)</span>
<span class="k">if</span> <span class="n">query</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">north_america</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">label_result</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="s2">"Северная Америка"</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">label_result</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="s2">"Ничего не найдено"</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">clear_search_field</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">"""</span>
<span class="sd"> Функция очистки поля ввода и лабела результата</span>
<span class="sd"> """</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">edit_search</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="s2">""</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ui</span><span class="o">.</span><span class="n">label_result</span><span class="o">.</span><span class="n">setText</span><span class="p">(</span><span class="s2">""</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">w</span> <span class="o">=</span> <span class="n">ExampleApp</span><span class="p">()</span>
<span class="n">w</span><span class="o">.</span><span class="n">show</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>
Общий :: GUI :: создание GUI приложения на python
2020-11-07T06:01:43+02:00Mark28212931Добрый день, форумчане! Извиняюсь сразу за глупый вопрос, уже 2 месяца не могу решить проблему.<br/><br/>На ПК стоит Windows 7, пользуюсь python 3.8 (32 bit), QT Designer 5.14.2<br/><br/>Хочу создать приложение, в котором при вводе страны программа выдала континент, на котором эта страна находится. Не могу понять, как привязать логику к конкретной кнопке, скриншоты прилагаю. Спасибо большое!!!!<br/><br/><br/><br/><br/><br/>import sys <br/>from PyQt5 import QtWidgets<br/>import design <br/><br/>class ExampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow):<br/> def __init__(self):<br/> super().__init__()<br/> self.setupUi(self) <br/><br/>country = input (“какая страна?”)<br/>if country == “Россия” or “Украина” or “Беларусь” or “Латвия” or “Литва” or “Эстония” or “Финляндия” or “Швеция” or “Норвегия” or “Дания” or “Германия” or “Польша” or “Австрия” or “Чехия” or “Словакия”:<br/> print (“Европа”)<br/>elif country == “Канада” or “США” or “Мексика”:<br/> print (“Северная Америка”)<br/>elif country == “Чад” or “ЮАР”, “Эфиопия” or “Кения”:<br/> print (“Африка”)<br/>else:<br/> print (“Введите другую страну”)<br/><br/>def main():<br/> app = QtWidgets.QApplication(sys.argv) <br/> window = ExampleApp() <br/> window.show() <br/> app.exec_() <br/><br/>if __name__ == ‘__main__’: <br/> main()