我在QStackedWidget中使用QLabel和QPLineEdit,QLable应该接近持有此小部件的窗口的大小.
但是当我为QLabel设置一个超长文本时,它会扩展太多,而且我无法横向缩小窗口大小,最小宽度太大.
我已经设置了这三个小部件的大小政策Minimum,它对我来说不起作用.
UPDATE
也许最好这样说:当没有足够的空间时,如何让QLabel显示文本的一部分
示例代码
#include <QtGui>
int main ( int argc , char **argv )
{
QApplication app (argc , argv);
QWidget w;
QLabel *label = new QLabel ("Very very very long text");
label->setSizePolicy (QSizePolicy::Minimum , QSizePolicy::Fixed);
QVBoxLayout layout (&w);
layout.addWidget ( label );
w.show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*Mat 12
如果我理解正确,最简单的方法就是忽略该标签的水平尺寸提示.
只要你有其他小部件(或手动强制最小宽度到容器),这应该做你想要的:
#include <QtGui>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QLabel *l1 = new QLabel("This very long text doesn't influence "
"the width of the parent widget");
l1->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);
// Style just to make it clear that the widget is
// being resized to fit the parent, it doesn't "overflow"
l1->setFrameShape(QFrame::Box);
l1->setFrameShadow(QFrame::Raised);
l1->setAlignment(Qt::AlignHCenter);
QLabel *l2 = new QLabel("This influences the width");
l2->setFrameShape(QFrame::Box);
l2->setFrameShadow(QFrame::Raised);
QWidget w;
QVBoxLayout layout(&w);
layout.addWidget(l1);
layout.addWidget(l2);
w.show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7441 次 |
| 最近记录: |