Игнат
Фев. 24, 2011 12:21:10
приложение с GUI на pyqt4
главный поток запускает десяток других потоков с помощью ThreadPoolExecutor
я знаю, что из потоков к гуи напрямую обращаться нельзя - если к примеру менять счетчики или выводить лог - для этого надо использовать сигналы и слоты
но если надо просто получить данные из гуи?
к примеру, если в гуи юзер указал определенное число-настройку и каждый поток достает это число через self.ui.lineEdit_test.text()
нормально ли так обращаться без сигналов и слотов, чтобы просто читать значения?
Андрей Светлов
Фев. 24, 2011 12:41:47
Гарантий нет. Иногда - прокатывает
Soteric
Фев. 24, 2011 13:04:43
Не надо ничего доставать из GUI. Если пользователь что-то где-то указал, то это что-то надо сохранить в отдельном классе, который отвечает за общие настройки, и работать уже с этим классом. Программа не должна спрашивать ничего у GUI. Это GUI должен спрашивать у программы что ему рисовать.
Смотри MVC/MVP.
Игнат
Фев. 24, 2011 21:03:42
да, я хотел сказать что понимаю что надо так делать, но потом решил опустить, чтобы пост не получился слишком длинный :)
это одно из моих первых серъёзных приложений на питоне, ещё не все успел продумать