Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для likesoft
7 / 7 / 5
Регистрация: 21.12.2012
Сообщений: 194

Как из программы написанной на PyQT5 сделать отдельный модуль?

03.05.2016, 21:51. Показов 1577. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот у меня есть небольшая программа которая отображает картинку(капчу), и поле для ввода капчи.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# -*- coding: utf-8 -*-
import sys, requests
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit
from PyQt5.QtGui import QIcon, QPixmap, QFont
 
 
class Captcha(QWidget):
    
    def __init__(self):
        super().__init__()
        
 
    def handle_image(self, url):
        p = requests.get(url)
        out = open("img.jpg", "wb")
        out.write(p.content)
        out.close()  
        self.initUI()
        
    
    def initUI(self):
        pixmap = QPixmap("img.jpg")
        lbl = QLabel(self)
        lbl.setPixmap(pixmap)
        lbl.move(55, 20)
        self.qle = QLineEdit(self)
        self.qle.setFont(QFont('Comic Sans MS', 12))
        self.qle.setMinimumHeight(30)
        self.qle.move(25, 100)
        self.qle.returnPressed.connect(self.pressEnter)
        
        self.setStyleSheet("background-color: white")
        self.setGeometry(300, 300, 240, 170)
        self.setWindowTitle('Введите капчу:')
        self.setWindowIcon(QIcon('icon.png'))
        self.show()
        
        
    def pressEnter(self):
        return self.qle.text()
 
 
if __name__ == '__main__':
 
    app = QApplication()
    ex = Captcha()
    ex.handle_image('http://api.vk.com/captcha.php?sid=239633676097&s=1')
    sys.exit(app.exec_())
Как из этой программы можно сделать отдельный модуль, чтобы можно было его импортировать и дальше юзать?
Допустим модуль называется captcha
Python
1
2
3
4
# -*- coding: utf-8 -*-
import captcha
v = captcha.Captcha()
v.handle_image("http://api.vk.com/captcha.php?sid=239633676097&s=1")
Вся проблема состоит в том что я только начал осваивать PyQT5, да и вообще питон в целом, и еще не вьехал как это можно реализовать.
Подскажите пожалуйста
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.05.2016, 21:51
Ответы с готовыми решениями:

Сделать перевод как отдельный модуль
Нужно отсоединить перевод из градусов в радианы.Точнее сделать его как отдельный модуль. Может кто нибудь сможет помочь ,то до меня вообще...

Как сделать установочный файл написанной программы?
Я написал прогу будильника. Теперь надо сделать установочный файл, чтобы она устанавливалось на любой компьютер. Помогите, как сделать?

Как свернуть часть кода программы на Питоне в Wing101 или в отдельный текстовый модуль?
Текст программы уже большой. Хотелось бы иметь открытой только ту часть с которой работаешь. В частности определение нескольких...

13
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
04.05.2016, 07:43
Так же, как из любого другого питоновского кода.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
04.05.2016, 07:44
likesoft, кидаешь нужный код в отдельный файл и потом в нужном проекте его импортируешь и все как бы.
0
21 / 21 / 2
Регистрация: 31.12.2015
Сообщений: 100
04.05.2016, 17:32
Друзья, подскажите, вот по этому фрагменту кода:
Python
1
2
3
4
class Captcha(QWidget):
    
    def __init__(self):
        super().__init__()
Не является ли он избыточным в таком виде? разве класс Captcha не наследует метод __init__ своего суперкласса, или какая-то особенность ускользнула от моего внимания?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
04.05.2016, 17:41
xPANICx, запуск метода __init__ у родительского класса это обязательная часть наследования, без этого ни как.
0
 Аватар для likesoft
7 / 7 / 5
Регистрация: 21.12.2012
Сообщений: 194
04.05.2016, 17:45  [ТС]
dondublon, нет, не так же
Попробуйте скопировать мой код и импортировать его из другого скрипта.
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
04.05.2016, 17:45
Обычно, explicit вызов __init__ в дочернем классе с отсылом через super на родительский существует для расширения функционала родительского метода, то есть в виде, как Вы это написали, где есть только отсыл на родительский __init__, наверное, смысла делать нет.
1
 Аватар для likesoft
7 / 7 / 5
Регистрация: 21.12.2012
Сообщений: 194
04.05.2016, 17:49  [ТС]
alex925, неа, с PyQT такое не катит((
По крайней мере с 5 версией, по поводу 4 ничего не скажу.
Попробуйте сами скопировать мой код в отдельный скрипт и импортировать его с другого скрипта, окно создаваемое PyQT5 не запустится.

Добавлено через 45 секунд
Не отклоняйтесь от темы пожалуйста (для тех кто про метод __init__)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
04.05.2016, 17:50
likesoft,
Цитата Сообщение от likesoft Посмотреть сообщение
нет, не так же
Попробуйте скопировать мой код и импортировать его из другого скрипта.
Врать очень не хорошо
Миниатюры
Как из программы написанной на PyQT5 сделать отдельный модуль?  
0
 Аватар для likesoft
7 / 7 / 5
Регистрация: 21.12.2012
Сообщений: 194
04.05.2016, 17:56  [ТС]
alex925, зачем же сразу "врать" ?

Значит нужно импортировать PyQT и в модуле captcha
и в скрипте который импортирует модуль captcha?
Иначе работать не будет?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
04.05.2016, 17:59
Цитата Сообщение от likesoft Посмотреть сообщение
Значит нужно импортировать PyQT и в модуле captcha
и в скрипте который импортирует модуль captcha?
Естественно)

Цитата Сообщение от likesoft Посмотреть сообщение
Иначе работать не будет?
Не будет
0
 Аватар для likesoft
7 / 7 / 5
Регистрация: 21.12.2012
Сообщений: 194
04.05.2016, 18:01  [ТС]
alex925, теперь понял! Спасибо за помощь
Я просто изначально вот так делал)
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
04.05.2016, 18:11
likesoft, ты пытался запускать программу на pyqt, в которой нет минимально необходимых частей кода:
- создания объекта приложения и запуска глобального цикла обработки событий
- создания окна и запуска отображения его
По этому все не работало.

Пожалуйста)
0
 Аватар для likesoft
7 / 7 / 5
Регистрация: 21.12.2012
Сообщений: 194
04.05.2016, 18:13  [ТС]
alex925, Ясно, буду знать)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.05.2016, 18:13
Помогаю со студенческими работами здесь

Что такое модуль программы, написанной на языке С++?
Как-то так. Разбирал теорию, и сразу же споткнулся на первом вопросе. Пытался нагуглить ответ, но увы. Ничего такого, чтобы окончательно...

Нужно вынести часть программы в отдельный модуль
Помогите вынести 19-36 строки в отдельный модуль, чтобы можно было потом как заголовочный файл .h его подключить #define...

Чем можно сделать нормальный инсталлятор для программы написанной на C++Builder?
Чем можно сделать нормальный инсталлятор для программы написанной на C++Builder? Есть программа написанная на C++Buider. Нужно сделать...

Записать 2 ниже приведенных программы в подпрограммы и записать их в отдельный программный модуль (.h)
Доброго времени суток, крайне сильно нужна помощь с данным заданием, заранее спасибо!! #include <stdio.h> #include...

Цикл как отдельный модуль
Здравствуйте, подскажите, пожалуйста, можно ли цикл сделать отдельным модулем? Что я имею ввиду: допустим есть этот код. for ( const...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru