Форум сайта python.su
у меня есть модуль index.py
В нем в начале задаются переменные потом классы моего окна на pyqt.
Есть еще один модуль index2.py
В index2.py
я пишу:
import sys from index import * if __name__ == '__main__': while True: app = QApplication([]) ex = Windows() ex.show() sys.exit(app.exec())
Офлайн
if __name__ == '__main__': app = QApplication([]) while True: ex = Windows() ex.show() sys.exit(app.exec())
isprytНужно сделать слот для изменения метки и посылать сигнал в него. А посылать сигнал можно в любое время.
И еще вопрос. допустим в index.py есть переменная, которая отображается в Qlabel
могу ли я в index2.py ее переопределить перед вызовом окна?
Отредактировано py.user.next (Дек. 15, 2016 04:40:47)
Офлайн
Я так понял нужно ex = Windows() - открыть в потоке? Как это сделать?
Офлайн
Если это открыть в потоке, то всё время будут открываться новые окна, пока это всё не выпадет.
Но запуск QApplication() в цикле - это неправильная фигня. Только один вызов должен быть.
Офлайн
ispryt, наследуйся от QDialog
from PyQt4.Qt import * app = QApplication([]) count = 3 while count: w = QDialog() w.setWindowTitle('w:'+ str(count)) w.show() w.exec_() count -= 1 lbl = QLabel("Finished") lbl.resize(400,300) lbl.show() app.exec_()
Отредактировано vic57 (Дек. 16, 2016 09:53:48)
Офлайн
Оке. всем спасибо. Такой вопрос. Есть у меня test.py - там класс это окошечко с двумя кнопакми лейблами.
Далее у меня есть test2.py - там я импортирую test.py и хочу через test2.py посылать сигнал на изменение лейблов в test.py.
Я так понял в test.py в классе я создаю метод, где в нем setText(“dfdfdf”)
И на дним ставлю @QtCore.pyqtSlot() он у меня становится слотом.
Как мне в теперь в test2.py послать туда сигнал допустим в цикле?
whilte True:
сигнал в test.py
Спасибо.
Офлайн
isprytу тебя есть метод, зачем слот?
И на дним ставлю @QtCore.pyqtSlot() он у меня становится слотом.
from PyQt4.Qt import * class W(QDialog): def __init__(self): QDialog.__init__(self) self.Label = QLabel(self) self.resize(300,100) app = QApplication([]) count = 3 while count: w = W() w.Label.setText('W:'+ str(count)) ret = w.exec_() count -= 1 w=W() w.Label.setText("Finished") w.show() app.exec_()
Офлайн