Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » [PyQt] автоматический скроллинг вниз списка при добавлении [RSS Feed]

#1 Июнь 21, 2013 09:13:56

nis
Зарегистрирован: 2013-06-21
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt] автоматический скроллинг вниз списка при добавлении

Пишу небольшой чат с использованием comet web server. Сообщения получаются в параллельном потоке и отправляются используя сигнал. Также в конце добавления сообщения на форму отправляется сигнал который вызывает функцию прокрутки списка вниз.

Однако прокрутка происходит на значение равное - 1 последнее сообщение.
Это функция прокрутки:

def scrolling(self):
	vbar.setValue(vbar.maximum())
Это функция добавления сообщения:
def main_slot(self, j_message):	
        message = j_message[0]['data']['message']
        j_name = j_message[0]['data']['name']
        r_name = re.search("<span\sclass=\"\w+\">(.+?)<", j_name)
        name = r_name.group(1)
        widget = QtGui.QWidget(main.mwMain.saChat)
        layout = QtGui.QVBoxLayout(widget)
        lbName = QtGui.QLabel('<b>' + name + '</b>')
        lbMessage = QtGui.QLabel(message)
        layout.addWidget(lbName)
        layout.addWidget(lbMessage)
        vbox.addWidget(widget)
        widget.show()
        self.emit( SIGNAL("chat_scrolling()"))
Если есть необходимость, могу в последствии предоставить весь код.



Прежде чем спорить подумай о том что воевать можно бесконечно, а вот мир бывает крайне коротким и редким. Мой сайт про stm32 и не только - www.nis-embedded.blogspot.com

Офлайн

#2 Июнь 21, 2013 21:14:59

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

[PyQt] автоматический скроллинг вниз списка при добавлении

nis
Если есть необходимость, могу в последствии предоставить весь код.
Лучше минимальный запускаемый пример, ни к чему не привязанный.

А так, только догадки. Возможно, где то не обновляется размер виджетов или значение скроллбара.
Можно попробовать добавить QApplication.processEvents() после widget.show() и после vbar.setValue().

Офлайн

#3 Июнь 23, 2013 10:29:59

nis
Зарегистрирован: 2013-06-21
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

[PyQt] автоматический скроллинг вниз списка при добавлении

reclosedev
Можно попробовать добавить QApplication.processEvents() после widget.show() и после vbar.setValue().
Добавил после widget.show - помогло.

Спасибо.



Прежде чем спорить подумай о том что воевать можно бесконечно, а вот мир бывает крайне коротким и редким. Мой сайт про stm32 и не только - www.nis-embedded.blogspot.com

Офлайн

  • Начало
  • » GUI
  • » [PyQt] автоматический скроллинг вниз списка при добавлении[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version