Виджет слайдера Qt с тиковыми текстовыми метками

c++
Вопрос: Я ищу виджет Qt, такой как QSlider, но с поддержкой текстовых меток, например: Этот виджет я буду использовать как переключатель режимов. Вы встречали что-то подобное? Лучший ответ: Я бы использовал QSlider с QLabel (s), как показано ниже. Моя обычная оговорка гласит, что вам может потребоваться некоторая тонкая настройка и настройка самостоятельно. main.cpp #include

Вопрос:

Я ищу виджет Qt, такой как QSlider, но с поддержкой текстовых меток, например: example widget

Этот виджет я буду использовать как переключатель режимов. Вы встречали что-то подобное?

Лучший ответ:

Я бы использовал QSlider с QLabel (s), как показано ниже. Моя обычная оговорка гласит, что вам может потребоваться некоторая тонкая настройка и настройка самостоятельно.

Содержание

  1. main.cpp
  2. main.pro
  3. Сборка и запуск

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

Сборка и запуск

qmake && make && ./main Ответ №1

Вы можете использовать мой расширенный класс QSlider в git.

Оцените статью
Добавить комментарий