Scrollbar->setValue 函数似乎无法正常工作

问题描述

更多背景: 我正在制作一个类似信使的小应用程序,所以我需要每 3 秒左右刷新一次消息。 当然,为了不烦人,我必须让页面与刷新前的位置相同,否则它只是烦人且无法使用。

所以,我的算法是这样的:

获取滚动条值-> 刷新小部件-> 向下滚动

一切正常,除了向下滚动部分,我不明白为什么

这是每次刷新时执行的代码

void Chatwindow::Reload(){

  int y = messages->verticalScrollBar()->value();
qDebug()<<"Reloading conversation";
qDebug()<<y;
last_loaded_message = 0;

QString group_name = current_group;
QString group_creator = current_group_creator;
title->setText(group_name);

messages->setWidgetResizable(1);



last_loaded_message = 0;
clearLayout(messages_layout);
messages_widget->resize(messages->width(),0);
QList<QList<QString>> me = database->getMessages(*username,group_name,group_creator);


if (me.size() != 0){

for(int i = 0; i<me.size();++i){
last_loaded_message =i;

  QList<QString> m = me[i];
  QString name = m[0];
  QString message = m[1];
  QString date = m[2];



 


if (name != username){
    MessageWidget *a = new MessageWidget(name,message,date,1);
  messages_layout->addWidget(a,Qt::AlignLeft);
  connect(a,SIGNAL(pleaseDelete(QString,QString,QDateTime)),this,SLOT(deleteMessage(QString,QDateTime)));
  //messages_widget->resize(messages_widget->width(),messages_widget->width() + a->height() + a->height());
  qDebug()<<a->height();}
else{
    MessageWidget *a = new MessageWidget("Vous",date);
    messages_layout->addWidget(a,Qt::AlignRight);
    connect(a,QDateTime)));
    //messages_layout->addSpacing(spacing);
    //messages_widget->resize(messages_widget->width(),messages_widget->width() + a->height() + a->height());
    qDebug()<<a->height(); }};}

messages->verticalScrollBar()->setValue(200);}

预先感谢任何试图提供帮助的人:-)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)