Найти - Пользователи
Полная версия: Запуск функции по клику на кнопку (PyQt4)
Начало » GUI » Запуск функции по клику на кнопку (PyQt4)
1 2
hvppydvddy
Всем привет. Подскажите пожалуйста почему как-то не корректно работает запуск функции по клику на кнопку?
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import lb_window_ui, time
 
class mainClass(QWidget, lb_window_ui.Ui_mainform):
    def __init__(self):
        super(mainClass, self).__init__()
        self.setupUi(self)
        self.start_btn.clicked.connect(self.addingtext)
 
    def addingtext(self):
        time.sleep(1)
        text = 'Text_1'
        self.item_lw.addItem(text)
        time.sleep(1)
        text2 = 'Text_2'
        self.item_lw.addItem(text2)      
 
if __name__ == '__main__':
    app = QApplication([])
    w = mainClass()
    w.show()
    app.exec_()
Хочу, чтобы по нажатию кнопки в QListWidget падало 2 текста с интервалом в 1 секунду. А получается что после нажатия проходит 2 секунды и в QListWidget падает сразу 2 текста.
Rodegast
> А получается что после нажатия проходит 2 секунды и в QListWidget падает сразу 2 текста.

Ну наверное это происодит потому что у тебя поток выполнение блокируется. Используй таймеры и всё будет хорошо.
hvppydvddy
Rodegast
Используй таймеры и всё будет хорошо.
И как же сразу не заюзал их. Спасибо.
Shaman
Ещё есть ленивый вариант с ручным проталкиванием сообщений в очереди.
hvppydvddy
Shaman
Ещё есть ленивый вариант с ручным проталкиванием сообщений в очереди.
Да не. С таймерами самое то.
Shaman
С паузами - конечно да, но в других случаях м.б. пригодится.
hvppydvddy
Shaman
С паузами - конечно да, но в других случаях м.б. пригодится.
А что за способ? М.б. и правда когда-нибудь столкнусь.
Shaman
Вручную вызывать processEvents() объекта QApplication.
hvppydvddy
Shaman
Вручную вызывать processEvents() объекта QApplication.
Мне на соседнем форуме первым постом подсказали такой вариант
Shaman
Ну так бородатый способ, применимый почти во всех гуях.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB