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

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

03.05.2016, 21:51. Показов 1564. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru