Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
39 / 22 / 10
Регистрация: 31.05.2017
Сообщений: 152

Нужнен совет с qthread

12.11.2018, 21:04. Показов 579. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, пытаюсь разобраться с qthread, ниже есть код:
Это функция, которая забрасывает выполнение в поток:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
       def _do_import(self, title, header_layout, func):
        super().__init__()
        self.label = QLabel("0")
        self.obj = Worker()
        self.thread = QThread()
        self.obj._setParametrs(self, title, header_layout, func)
        self.obj.onready.connect(self._show_import_result)
        self.obj.moveToThread(self.thread)
        self.obj.moveToThread(self)
        self.obj.finished.connect(self.thread.quit)
        self.thread.started.connect(self.obj._do_import_thread)
        self.thread.finished.connect(self.thread.quit)
        self.thread.start()
Это сам поток:
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
  class Worker(QObject):
    finished = pyqtSignal()
    onready = pyqtSignal(int)
 
    def _setParametrs(self, object, title, header_layout, func):
        self.object = object
        self.title = title
        self.header = header_layout
        self.func = func
 
    @pyqtSlot()
    def _do_import_thread(self):
            text = text_dialog(self.object, self.title, self.header, _('Import'), allow_multi=True)
            if not text:
                return
            keys = str(text).split()
            good_inputs, bad_inputs = self.func(keys)
            if good_inputs:
                msg = '\n'.join(good_inputs[:10])
                if len(good_inputs) > 10: msg += '\n...'
                self.onready.emit(1)
            if bad_inputs:
                msg = "\n".join(f"{key[:10]}... ({msg})" for key, msg in bad_inputs[:10])
                if len(bad_inputs) > 10: msg += '\n...'
                self.onready.emit(0)
            self.finished.emit()
И функция, с которой проблема:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def text_dialog(parent, title, header_layout, ok_label, default=None, allow_multi=False):
    from .qrtextedit import ScanQRTextEdit
    dialog = WindowModalDialog(parent, title)
    dialog.setMinimumWidth(600)
    l = QVBoxLayout()
    dialog.setLayout(l)
    if isinstance(header_layout, str):
        l.addWidget(QLabel(header_layout))
    else:
        l.addLayout(header_layout)
    txt = ScanQRTextEdit(allow_multi=allow_multi)
    if default:
        txt.setText(default)
    l.addWidget(txt)
    l.addLayout(Buttons(CancelButton(dialog), OkButton(dialog, ok_label)))
    if dialog.exec_():
        return txt.toPlainText()
Сама же проблема состоит в том, что в функцию text_dialog я должен передать параметр self из потока. Но проблема в том, что сам этот self неходится в другом потоке и при попытке обращения к нему мне вылетает ошибка, мол я пытаюсь оратиться из одного потока в другой. Кто знает что можно сделать с этим? Мб как-то можно передать объект в поток, или там его на месте инициализировать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2018, 21:04
Ответы с готовыми решениями:

Нужнен совет
Здравствуйте нужен совет мне скинули папку с программой запускаю выходит форма и код , а запустить не могу.... Выходит ошибка...

Нужнен совет по Классам
Привет, В общем проблема в том, что нужно написать функцию которая брала бы значения переменных из одних объектов и скидывала в другие,...

Нужнен совет по .animate
В общем, переделываю шаблон для сайта, почти все закончил, но возникла проблема с менюшкой. Показываю на скриншотах что да как. Меню с...

1
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
13.11.2018, 02:52
Данные между потоками передаются с помощью сигналов-слотов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2018, 02:52
Помогаю со студенческими работами здесь

Нужнен совет по ajax
Здравствуйте, пытаюсь переделать добавление сообщения в базу с php на ajax function doLoad(url) //, strParams { var xmlhttp =...

Нужнен Ваш совет
Я хочу учится на программиста. Я решил изучать С но я не знаю с чего начать... Не могли бы вы мне помочь разобраться в этом. Напишите...

Нужнен совет с настройками
Имеется: 2 стационарных компа,роутер ASUS RT N16,телевизор Samsung smart tv,провайдер Аист(г.Тольятти)скорость с внешки 36 Мбит/с,внутри...

Simens IQ 1631 Нужнен совет
Здраствуйте. Имею simens iq 1631 и iq 1832 в общем на 1832 сгорели какие то транзисторы на электронном модуле управления после удара...

Нужнен совет в создание скрипта!
Вот люди написал такой скрипит #include <iostream> #include <conio.h> using namespace std; int main () { int...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru