带刻度文本标签的Qt滑块小部件 [英] Qt slider widget with tick text labels
本文介绍了带刻度文本标签的Qt滑块小部件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在搜索像QSlider这样的Qt小部件,但是具有如下文本标记标签支持:
I'm searching for Qt widget like QSlider, but with text tick labels support like this:
此小部件将用作模式切换器.你遇到过类似的事情吗?
This widget I'll use as mode switcher. Have you met something like that?
推荐答案
我将使用带有 QLabel
的 QSlider
,如下所示.我通常的免责声明是,您可能需要确定自己进行一些微调和调整.
I would use a QSlider
with QLabel
(s) attached as below. My usual disclaimer goes that you may need some fine-tuning and adjustment on your own for sure.
#include <QMainWindow>
#include <QApplication>
#include <QGridLayout>
#include <QSlider>
#include <QLabel>
class MainWindow Q_DECL_FINAL : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = Q_NULLPTR) : QMainWindow(parent)
{
QSlider *slider = new QSlider(Qt::Horizontal, this);
slider->setRange(1, 4);
slider->setSingleStep(1);
QLabel *label1 = new QLabel("Novice", this);
QLabel *label2 = new QLabel("Intermediate", this);
QLabel *label3 = new QLabel("Advanced", this);
QLabel *label4 = new QLabel("Expert", this);
QGridLayout *layout = new QGridLayout;
layout->addWidget(slider, 0, 0, 1, 4);
layout->addWidget(label1, 1, 0, 1, 1);
layout->addWidget(label2, 1, 1, 1, 1);
layout->addWidget(label3, 1, 2, 1, 1);
layout->addWidget(label4, 1, 3, 1, 1);
setLayout(layout);
}
};
#include "main.moc"
int main(int argc, char **argv)
{
QApplication application(argc, argv);
MainWindow mainWindow;
mainWindow.show();
return application.exec();
}
main.pro
TEMPLATE = app
TARGET = main
QT += widgets
SOURCES += main.cpp
构建并运行
qmake && make && ./main
这篇关于带刻度文本标签的Qt滑块小部件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文