Qt slider widget with tick text labels

匿名 (未验证) 提交于 2019-12-03 03:10:03

问题:

I 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?

回答1:

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.

main.cpp

#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 

Build and Run

qmake && make && ./main 


回答2:

You can use my extended QSlider class in git.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!