⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sliderlcd.cpp

📁 压缩包里有教材<<C++模式设计-基于QT4开源跨平台开发框架>>所有源码
💻 CPP
字号:
#include <QDockWidget>#include <QSlider>#include <QErrorMessage>#include <QLCDNumber>#include <logwindow.h>#include "sliderlcd.h"//start id=mainSliderLCD::SliderLCD(int min, int max) : m_Minval(min), m_Maxval(max) {    initSliderLCD();}void SliderLCD::initSliderLCD() {    m_LogWin = new LogWindow(); /* defined in the utils library */    QDockWidget *logDock = new QDockWidget("Debug Log");    logDock->setWidget(m_LogWin);    logDock->setFeatures(0); /* cannot be closed, moved, or floated */    setCentralWidget(logDock);    m_LCD = new QLCDNumber();    m_LCD->setSegmentStyle(QLCDNumber::Filled);    QDockWidget *lcdDock = new QDockWidget("LCD");    lcdDock->setFeatures(QDockWidget::DockWidgetClosable); /* can be closed */    lcdDock->setWidget(m_LCD);    addDockWidget(Qt::LeftDockWidgetArea, lcdDock);    m_Slider = new QSlider( Qt::Horizontal);    QDockWidget* sliderDock = new QDockWidget("How cold is it today?");    sliderDock->setWidget(m_Slider);    sliderDock->setFeatures(QDockWidget::DockWidgetMovable);    /* can be moved between doc areas */    addDockWidget(Qt::BottomDockWidgetArea, sliderDock);    m_Slider->setRange(m_Minval, m_Maxval);    m_Slider->setValue(0);    m_Slider->setFocusPolicy(Qt::StrongFocus);      m_Slider->setSingleStep(1); /* step each time left or right arrow            key is pressed */    m_Slider->setPageStep(20); /* step each time PageUp/PageDown key is pressed*/    m_Slider->setFocus(); /* Give the slider focus. */    connect(m_Slider, SIGNAL(valueChanged(int)),  /* SliderLCD is a QObject so        connect does not need scope resolution. */            this, SLOT(checkValue(int)));    connect(m_Slider, SIGNAL(valueChanged(int)),             m_LCD, SLOT(display(int)));    connect(this, SIGNAL(toomuch()),             this, SLOT(showMessage())); /* Normally there is no         point in connecting a signal to a slot on the same        object, but we do it for demonstration purposes. */     m_ErrorMessage = NULL;}//end//start id=emitvoid SliderLCD::checkValue(int newValue) {    if (newValue> 120) {        emit toomuch(); /* Emit a signal to anyone interested. */    }    }/* This slot is called indirectly via emit because   of the connect. */void SliderLCD::showMessage() {    if (m_ErrorMessage == NULL) {        m_ErrorMessage = new QErrorMessage(this);    }    if (!m_ErrorMessage->isVisible()) {        QString message("Too hot outside! Stay in. ");        m_ErrorMessage->showMessage(message); /* This is a direct        call to a slot. It's a member function. */    }}//end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -