请教个Qt相关问题:对于QSlider如何自定义设置滑块滑动区域?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教个Qt相关问题:对于QSlider如何自定义设置滑块滑动区域?相关的知识,希望对你有一定的参考价值。
参考技术A QSlider *qs=new QSlider(this);qs->setGeometry(20,50,20,100);
qs->setRange(0,100); //设定最大值最小值
qs->setMinimum(0);qs->setMaximum(100); //分开设定最大值,最小值
如何在 QVBoxLayout 中显示 QString
【中文标题】如何在 QVBoxLayout 中显示 QString【英文标题】:How to show a QString in a QVBoxLayout 【发布时间】:2014-07-22 09:46:52 【问题描述】:我试图在 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 中显示一个字符串?
【问题讨论】:
【参考方案1】:怎么了?
你不能那样直接添加QString
,因为QString
只是一个方便的字符串操作类,不负责UI显示。
解决方案:
你需要一个 QLabel
的实例来保存你的QString
:
QLabel *label_1 = new QLabel(this);
label_1->setText("Label for Slider 1");
layout->addWidget(label_1);
layout->addWidget(slider1);
更好的布局:
此外,您可以考虑使用nested layout:创建一个新的水平布局,其中包含一个QLabel
和一个QSlider
,然后将该布局添加到您的对话框布局中。
代码如下:
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();
附:我强烈建议您使用设计器来部署小部件布局。
【讨论】:
非常感谢。我会尽快验证您的回答。 Visual Studio 2013 中设计器的使用相当复杂。 哦...如果 Qt 将来让您感到惊讶,也许您可以考虑使用 Qt creator 作为开发 Qt 小部件的 IDE。 Ui 设计器和代码编辑器之间来回切换的能力非常有帮助。以上是关于请教个Qt相关问题:对于QSlider如何自定义设置滑块滑动区域?的主要内容,如果未能解决你的问题,请参考以下文章