from io import BytesIO
import requests
from PyQt5.QtWidgets import (QApplication, QMainWindow, QGridLayout,
QWidget, QTableWidget, QTableWidgetItem)
from PyQt5.QtGui import QPixmap, QIcon
from PyQt5.QtCore import QSize, Qt, QThread, pyqtSignal, pyqtSlot
class UploadImage(QThread):
data = pyqtSignal(bytes)
def __init__(self):
super().__init__()
@pyqtSlot()
def run(self):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.2)\
AppleWebKit/537.36 (KHTML, like Gecko)\
Chrome/63.0.3239.84 Safari/537.36',
'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7'}
url = "https://cdn.programiz.com/sites/tutorial2program/files/hello-world.jpg"
try:
content = requests.get(url, headers=headers).content
self.data.emit(content)
except requests.exceptions.ConnectionError as error:
print(error)
class MainWindow(QMainWindow):
# Переопределяем конструктор класса
def __init__(self):
# Обязательно нужно вызвать метод супер класса
super().__init__()
self.pixmap = QPixmap()
self.setMinimumSize(QSize(800, 300)) # Устанавливаем размеры
self.setWindowTitle("Загрузка изображения из интернета")# Устанавливаем заголовок окна
central_widget = QWidget(self) # Создаём центральный виджет
self.setCentralWidget(central_widget) # Устанавливаем центральный виджет
grid_layout = QGridLayout() # Создаём QGridLayout
central_widget.setLayout(grid_layout) # Устанавливаем данное размещение в центральный виджет
self.table = QTableWidget(self) # Создаём таблицу
self.table.setColumnCount(1)
self.table.setRowCount(1) # и одну строку в таблице
# Устанавливаем заголовки таблицы
self.table.setHorizontalHeaderLabels(["Изображение"])
# Устанавливаем всплывающие подсказки на заголовки
self.table.horizontalHeaderItem(0)
self.table.horizontalHeaderItem(0).setToolTip("Шутка")
# Устанавливаем выравнивание на заголовки
self.table.horizontalHeaderItem(0).setTextAlignment(Qt.AlignLeft)
# делаем ресайз колонок по содержимому
self.table.resizeColumnsToContents()
grid_layout.addWidget(self.table, 0, 0) # Добавляем таблицу в сетку
self.upload_image = UploadImage()
self.upload_image.start()
self.upload_image.data.connect(self.show_image)
def show_image(self, image_bytes):
self.bytes_io = BytesIO(image_bytes)
self.pixmap.loadFromData(self.bytes_io.getvalue())
image = QTableWidgetItem()
image.setData(Qt.DecorationRole, self.pixmap)
image.setFlags(image.flags() ^ Qt.ItemIsEditable)
self.table.setItem(0, 0, image)
self.table.resizeColumnsToContents()
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
mw = MainWindow()
mw.show()
sys.exit(app.exec())
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Example')
self.setWindowFlags(Qt.WindowMaximizeButtonHint)
if __name__ == '__main__':
app = QApplication(sys.argv)
example = Example()
example.show()
sys.exit(app.exec_())
import sys
from PyQt5.QtWidgets import *
class Example(QWidget):
def __init__(self):
super().__init__()
self.resize(180, 40)
self.setWindowTitle("Пример")
self.button = QPushButton('изменить надпись нижней кнопки', self)
self.button.clicked.connect(self.function)
self.button_2 = QPushButton('Hello user!', self)
self.button_2.setGeometry(0, 20, 180, 25)
def function(self):
self.button_2.setText("Привет пользователь!")
def main():
app = QApplication(sys.argv)
window = Example()
window.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt
class PopupMenu(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Пример всплывающего меню')
self.resize(300, 300)
self.label = QLabel(self)
self.label.setText("МЕНЮ")
self.popup_menu = QLabel(self)
self.popup_menu.resize(180, 100)
self.popup_menu.setText("Hello PyQt5!")
self.popup_menu.setStyleSheet("border: 2px solid grey; font: 75 italic 16pt Verdana;\
text-align: center; border-radius: 10px;\
background-color: lightblue; width: 10px;")
self.popup_menu.hide()
hbox = QHBoxLayout()
hbox.setAlignment(Qt.AlignCenter)
hbox.addStretch(2)
hbox.addWidget(self.label)
hbox.addWidget(self.popup_menu)
self.label.installEventFilter(self)
def eventFilter(self, obj, event):
# Если мышь над виджетом
if event.type() == 10:
self.popup_menu.show()
# Если мышь покинула область виджета
elif event.type() == 11:
pass
return False
if __name__ == '__main__':
app = QApplication(sys.argv)
window = PopupMenu()
window.show()
sys.exit(app.exec_())
try:
filename = input("Введите имя файла: ")
file_object = open(filename + ".txt", 'r')
all_the_text = file_object.read( ).split('\n')
print (all_the_text)
num_words = 0
with open(filename + ".txt",'r') as f:
for line in f:
words = line.split()
num_words += len(words)
print("Число слов:")
print(num_words)
except IOError as error:
print(error)
print("Файл не найден.")
<li><a href="/info/partners">\xd0\x9f\xd0\xb0\xd1\x80\xd1\x82\xd0\xbd\xd0\xb5\xd1\x80\xd0\xb0\xd0\xbc</a></li>\n <li><a href="/info/agreement">\xd0\x9f\xd0\xbe\xd0\xbb\xd1\x8c\xd0\xb7\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd1\x81\xd0\xba\xd0\xbe\xd0\xb5 \xd1\x81\xd0\xbe\xd0\xb3\xd0\xbb\xd0\xb0\xd1\x88\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5</a></li>
b = b"\xd0\x9f\xd0\xb0\xd1\x80\xd1\x82\xd0\xbd\xd0\xb5\xd1\x80\xd0\xb0\xd0\xbc \xd0\x9f\xd0\xbe\xd0\xbb\xd1\x8c\xd0\xb7\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd1\x81\xd0\xba\xd0\xbe\xd0\xb5 \xd1\x81\xd0\xbe\xd0\xb3\xd0\xbb\xd0\xb0\xd1\x88\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5"
b.decode("utf-8") # -> 'Партнерам Пользовательское соглашение'
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class Example(QMainWindow):
send = pyqtSignal(tuple)
def __init__(self):
super().__init__()
self.initUI()
@pyqtSlot()
def initUI(self):
self.setWindowTitle("Пример")
self.setGeometry(300, 300, 250, 100)
self.line_edit = QLineEdit(self)
self.line_edit.setGeometry(0, 0, 250, 33)
self.line_edit_2 = QLineEdit(self)
self.line_edit_2.setGeometry(0, 33, 250, 33)
self.button = QPushButton('Запуск', self)
self.button.clicked.connect(self.start)
self.button.setGeometry(0, 66, 250, 34)
self.send.connect(self.print)
def start(self):
# print("LineEdit get text:", self.line_edit.text())
# print("LineEdit2 get text:", self.line_edit_2.text())
str_tuple = (self.line_edit.text(), self.line_edit_2.text())
self.send.emit(str_tuple)
def print(self, data):
print(data)
if __name__ == '__main__':
application = QApplication(sys.argv)
window = Example()
window.show()
sys.exit(application.exec_())
import os
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtCore import Qt
class EnterName(QWidget):
text_value = pyqtSignal(str)
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 50)
self.setWindowTitle('Введите имя')
self.button = QPushButton('Сохранить', self)
self.button.clicked.connect(self.bEvent)
self.button.move(120, 30)
self.lEdid = QLineEdit(self)
self.lEdid.setGeometry(0, 0, 300, 30)
@pyqtSlot()
def bEvent(self):
self.text_value.emit(self.lEdid.text())
self.hide()
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 420, 280)
self.setWindowTitle('Exsample')
self.setWindowModality(Qt.WindowModal)
self.button = QPushButton('Имя', self)
self.button.move(180, 260)
self.button.clicked.connect(self.bEvent)
self.tb = QTextBrowser(self)
self.tb.setGeometry(0, 0, 420, 260)
self.eName = EnterName()
self.eName.text_value.connect(self.signalHandler)
def bEvent(self):
self.eName.show()
def signalHandler(self, text):
self.tb.append(text)
if __name__ == '__main__':
app = QApplication(sys.argv)
example = Example()
example.show()
sys.exit(app.exec_())
import os
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
def log_uncaught_exceptions(ex_cls, ex, tb):
import traceback
text = '{}: {}:\n\n'.format(ex_cls.__name__, ex)
text += ''.join(traceback.format_tb(tb))
QMessageBox.critical(None, 'Ошибка!', text)
sys.excepthook = log_uncaught_exceptions
class EnterName(QWidget):
text_value = pyqtSignal(str)
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 50)
self.setWindowTitle('Введите имя')
self.button = QPushButton('Сохранить', self)
self.button.clicked.connect(self.bEvent)
self.button.move(120, 30)
self.lEdid = QLineEdit(self)
self.lEdid.setGeometry(0, 0, 300, 30)
@pyqtSlot()
def bEvent(self):
self.text_value.emit(self.lEdid.text())
self.hide()
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 420, 280)
self.setWindowTitle('Exsample')
self.button = QPushButton('Имя', self)
self.button.move(180, 260)
self.button.clicked.connect(self.bEvent)
self.tb = QTextBrowser(self)
self.tb.setGeometry(0, 0, 420, 260)
self.eName = EnterName()
self.eName.text_value.connect(self.signalHandler)
def bEvent(self):
self.eName.show()
def signalHandler(self, text):
self.tb.append(text)
if __name__ == '__main__':
app = QApplication(sys.argv)
example = Example()
example.show()
sys.exit(app.exec_())
import sys
from PyQt5.QtWidgets import *
import rsa
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Пример")
self.textBrowser = QTextBrowser(self)
self.textBrowser.move(0, 50)
self.textEdit = QTextEdit(self)
self.textEdit.append("Hello world!")
text = self.textEdit.toPlainText()
(pubkey, privkey) = rsa.newkeys(700)
# шифруем
crypto = rsa.encrypt(text.encode(), pubkey)
print(crypto)
# записываем в файл
file = open("my_file.bin", "wb").write(crypto)
# открываем файл в режиме чтения байтов
file = open("my_file.bin", "rb").read()
#расшифровываем
self.text = rsa.decrypt(file, privkey)
self.textBrowser.append(self.text.decode())
print(text)
if __name__ == '__main__':
app = QApplication(sys.argv)
form = Example()
form.show()
app.exec()