class ExampleApp(QtWidgets.QMainWindow, test_ui.Ui_MainWindow):
from test_ui import Ui_MainWindow as Main_Ui
class ExampleApp(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.ui = Main_Ui() # все визуальные элементы теперь будут тут
self.ui.setupUi(self)
Сигналы могут испускать и принимать только объекты-наследники QObject и только в основном цикле событий. Task таковым не является.Да, Taks должен быть наследником QObject.
Task(QtWidgets.QMainWindow) или как?QMainWindow - главное окно, обычно оно одно. Можете наследовать практически от любого класса Qt, за небольшим исключением.
import time,threading
class Foo:
a = "a"
dc = {'a': 'a'}
def thread_func():
w = 0
while w < 5:
time.sleep(2)
print("func:" + Foo.a)
print("func:" + Foo.dc['a'])
w += 1
if __name__ == "__main__":
x = threading.Thread(target=thread_func)
x.start()
inp = input('new: ')
Foo.a = inp
Foo.dc['a'] = inp
from random import choice
def get_sum(a, b):
assert type(a) == int, "Неверный тип!"
# аналог конструкции
if __debug__:
if type(a) != int:
raise AssertionError("Неверный тип!")
# записанной в одну строку
assert type(b) == int, "И снова неверный тип!"
return a + b
lst = ['1', 1, '2', 3, '4', 4, '5', 5, '6', 6]
print(get_sum(choice(lst), choice(lst)))
def __add__(self, other):
type_of_other = type(other)
if type_of_other == Aqua:
return Vapor(part1=self, part2=other)
elif type_of_other == Earth:
return Lava(part1=self, part2=other)
elif type_of_other == Air:
return Lightning(part1=self, part2=other)
Dr. Bacon, складываю два объекта воду и огонь
import threading as th
from queue import Queue
lenAllData = 1000000
class ClassForQueue:
queueData = Queue()
def threadAddQueue():
# Симулируем заполнение очереди
for i in range(lenAllData):
ClassForQueue.queueData.put(i)
def threadProcQueue():
# симулируем разбор очереди
while True:
data_from_queue = ClassForQueue.queueData.get()
print(f'Length {ClassForQueue.queueData.qsize()}, last value {data_from_queue}')
# Запускаем и получаем рандом в выводе
if __name__ == '__main__':
th1 = th.Thread(target=threadAddQueue)
th1.start()
th2 = th.Thread(target=threadProcQueue)
th2.start()