之前有用QScrollArea 设置一个滑动条的窗口,但发现设置了半天没用,发现设置到了QScrollArea 上,而不是里面的QWidget上。
上述红框不放呢画错的地方原本写错成 model_stack_scrollwidget,这个是QScrollArea ,这也归咎于自己没有处理好命名导致发生的这种问题。
也可以去直接QTdemo
实际看一下效果代码图即可:
QWidget* pSubWidget = new QWidget();
QScrollArea* pScrollArea = new QScrollArea(this);
pScrollArea->setFixedSize(150, 150);
pScrollArea->setWidgetResizable(true);
pScrollArea->setWidget(pSubWidget);
pScrollArea->move(QPoint(100, 100));
QVBoxLayout* pSubLayout = new QVBoxLayout(this);
pSubWidget->setLayout(pSubLayout);
for (auto i = 0; i < 10; ++i)
pSubLayout->addWidget(new QPushButton(QString("test%1").arg(i), this));
最近在做一个项目的时候,需要做一个log监视框。我用的是QTextEdit来显示我的log信息,但是发现每次我追加我的内容后QTextEdit中的滚动条没有自动下拉,每次需要自己往下拉,很是麻烦。找了一些资料实现了。今天来总结一下,有不足的地方,麻烦大家指出,一起共同进步!
1 创建QTextEdit对象
void CustomClass::initTextEdit()
m_pText
QScrollArea滚动区域
滚动区域用于显示框架内子窗口小部件的内容。 如果窗口小部件超出框架的大小,则视图可以提供滚动条,以便可以查看子窗口小部件的整个区域。 子窗口小部件必须使用setWidget()指定。
alignment:
属性保存滚动区域的小部件的对齐方式
Qt::Alignmentalignment() const
voidsetAlignment(Qt::Alignment)
有效的对齐方式是以下标志的组合:
Qt::AlignLe...
在Qt中,可以使用QScrollArea类来创建一个带有滚动条的窗口部件。要设置滚动条,可以使用setVerticalScrollBarPolicy()和setHorizontalScrollBarPolicy()方法来设置垂直和水平滚动条的显示策略。例如,以下代码将创建一个QScrollArea对象,并设置垂直滚动条始终可见,水平滚动条从不可见:
QScrollArea *scrollArea = new QScrollArea;
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
除了设置滚动条的显示策略外,还可以使用QScrollBar类的方法来设置滚动条的其他属性,例如范围、步长、当前值等。可以使用setWidget()方法将要滚动的窗口部件设置为QScrollArea的子部件。例如,以下代码将创建一个QLabel对象,并将其设置为QScrollArea的子部件:
QLabel *label = new QLabel("This is a long text that needs to be scrolled.");
scrollArea->setWidget(label);