C++ 如何在QVBoxLayout中显示QString

C++ 如何在QVBoxLayout中显示QString,c++,qt,C++,Qt,我试图在QSLider前面加上一个标题,这样用户就知道QSLider的用途了。 我在QVBoxLayout上的QDialog Box中设置了2个QSlider,如下所示: QSlider * slider1 = new QSlider(Qt::Horizontal); QSlider * slider2 = new QSlider(Qt::Horizontal); QDialog * opts = new QDialog; QVBoxLayout * layout = new QVBoxLay

我试图在QSLider前面加上一个标题,这样用户就知道QSLider的用途了。 我在QVBoxLayout上的QDialog Box中设置了2个QSlider,如下所示:

QSlider * slider1 = new QSlider(Qt::Horizontal);
QSlider * slider2 = new QSlider(Qt::Horizontal);

QDialog * opts = new QDialog;
QVBoxLayout * layout = new QVBoxLayout;

layout->addWidget(Qstring("Label for Slider 1"));
layout->addWidget(slider1);
layout->addWidget(QString("Label for Slider 2"));
layout->addWidget(slider2);

opts->setLayout(layout);
opts->show();
现在滑块工作正常,但我无法显示文本。无论如何,我对这样的事情一无所知。如何在QVBoxLayout中显示字符串?

怎么了? 您不能像那样直接添加
QString
,因为
QString
只是一个方便的字符串操作类,它不负责UI显示

解决方案: 您需要一个实例来保存
QString

QLabel *label_1 = new QLabel(this);
label_1->setText("Label for Slider 1");
layout->addWidget(label_1);
layout->addWidget(slider1);

更好的布局:

此外,您可以考虑使用:创建一个新的水平布局,其中包含一个代码> qLabor <代码>和一个代码> QSlider < /C> >,然后将布局添加到对话框布局中。

代码如下:

QSlider * slider1 = new QSlider(Qt::Horizontal);
QSlider * slider2 = new QSlider(Qt::Horizontal);

QDialog * opts = new QDialog;
QVBoxLayout * layout = new QVBoxLayout; // layout for Dialog itself
QHBoxLayout * layout_1 = new QHBoxLayout(this); // layout for slider1 & label1
QHBoxLayout * layout_2 = new QHBoxLayout(this); // layout for slider2 & label2

QLabel *label_1 = new QLabel(this);
QLabel *label_2 = new QLabel(this);
label_1->setText("Label for Slider 1");
label_2->setText("Label for Slider 2");

layout_1->addWidget(label_1);    
layout_1->addWidget(slider1); // [Label_1][Slider1]

layout_2->addWidget(label_2);    
layout_2->addWidget(slider2); // [Label_2][Slider2]

layout->addLayout(layout_1);
layout->addLayout(layout_2);    
opts->setLayout(layout);
opts->show();

另外,我强烈建议您使用designer来部署小部件布局。

非常感谢。我将尽快验证您的答案。在Visual Studio 2013中,设计器的使用相当复杂。哦。。。也许您可以考虑使用Qt创建者作为您的IDE来开发QT小部件,如果QT在将来令您吃惊。在Ui设计器和代码编辑器之间来回切换的能力非常有用。