直播平臺搭建原始碼,qt自定義滑動按鈕
直播平臺搭建原始碼,qt自定義滑動按鈕
程式碼:
switchbutton.h
#ifndef switchbutton_H #define switchbutton_H #include <QWidget> #include <QTimer> #include <QColor> class switchbutton : public QWidget { Q_OBJECT public: explicit switchbutton(QWidget *parent = 0); ~switchbutton(){} signals: void statusChanged(bool checked); public slots: void updateValue(); private: void drawBackGround(QPainter *painter); void drawSlider(QPainter *painter); protected: void paintEvent(QPaintEvent *ev); void mousePressEvent(QMouseEvent *ev); private: int m_space; //滑塊距離邊界距離 int m_radius; //圓角角度 bool m_checked; //是否選中 bool m_showText; //是否顯示文字 bool m_showCircle; //是否顯示圓圈 bool m_animation; //是否使用動畫 QColor m_bgColorOn; //開啟時候的背景色 QColor m_bgColorOff; //關閉時候的背景色 QColor m_sliderColorOn; //開啟時候滑塊顏色 QColor m_sliderColorOff; //關閉時候滑塊顏色 QColor m_textColor; //文字顏色 QString m_textOn; //開啟時候的文字 QString m_textOff; //關閉時候的文字 QTimer *m_timer; //動畫定時器 int m_step; //動畫步長 int m_startX; //滑塊開始X軸座標 int m_endX; //滑塊結束X軸座標 public: int space() const; int radius() const; bool checked() const; bool showText() const; bool showCircel() const; bool animation() const; QColor bgColorOn() const; QColor bgColorOff() const; QColor sliderColorOn() const; QColor sliderColorOff() const; QColor textColor() const; QString textOn() const; QString textOff() const; int step() const; int startX() const; int endX() const; public Q_SLOTS: void setSpace(int space); void setRadius(int radius); void setChecked(bool checked); void setShowText(bool show); void setShowCircle(bool show); void setAnimation(bool ok); void setBgColorOn(const QColor &color); void setBgColorOff(const QColor &color); void setSliderColorOn(const QColor &color); void setSliderColorOff(const QColor &color); void setTextColor(const QColor &color); void setTextOn(const QString &text); void setTextOff(const QString &text); }; #endif // switchbutton_H
switchbutton.cpp
#pragma execution_character_set("utf-8") #include "switchbutton.h" #include <QPainter> switchbutton::switchbutton(QWidget *parent) : QWidget(parent) { m_space = 2; m_radius = 5; m_checked = false; m_showText = true; m_showText = false; m_animation = true; m_bgColorOn = QColor(102, 205, 170);//設定按鈕內部顏色 m_bgColorOff = QColor(190, 190, 190); m_sliderColorOn = QColor(255, 255, 255); m_sliderColorOff = QColor(255, 255, 255); m_textColor = QColor(255, 255, 255); m_textOn = "開啟";//設定按鈕中的文字 m_textOff = "關閉"; m_step = 0; m_startX = 0; m_endX = 0; m_timer = new QTimer(this); m_timer->setInterval(30); connect(m_timer, SIGNAL(timeout()), this, SLOT(updateValue())); } void switchbutton::drawBackGround(QPainter *painter) { painter->save(); painter->setPen(Qt::NoPen); QColor bgColor = m_checked ? m_bgColorOn : m_bgColorOff; if (isEnabled()) { bgColor.setAlpha(150); } painter->setBrush(bgColor); QRect rect(0, 0, width(), height()); int side = qMin(width(), height()); //左側半圓 QPainterPath path1; path1.addEllipse(rect.x(), rect.y(), side, side); //右側半圓 QPainterPath path2; path2.addEllipse(rect.width() - side, rect.y(), side, side); //中間的矩形 QPainterPath path3; path3.addRect(rect.x() + side / 2, rect.y(), rect.width() - side, height()); QPainterPath path = path1 + path2 + path3; painter->drawPath(path); //繪製文字 //滑塊半徑 int sliderWidth = qMin(height(), width()) - m_space * 2 - 5; if (m_checked){ QRect textRect(0, 0, width() - sliderWidth, height()); painter->setPen(QPen(m_textColor)); painter->drawText(textRect, Qt::AlignCenter, m_textOn); } else { QRect textRect(sliderWidth, 0, width() - sliderWidth, height()); painter->setPen(QPen(m_textColor)); painter->drawText(textRect, Qt::AlignCenter, m_textOff); } painter->restore(); }
以上就是直播平臺搭建原始碼,qt自定義滑動按鈕, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2942654/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Qt QMessageBox::information 自定義按鈕QTORM
- 直播平臺開發,自定義中間向兩邊滑動的滑動條
- Android開發自定義View之滑動按鈕與自定義屬性AndroidView
- Qt自定義開關按鈕控制元件QT控制元件
- 直播平臺原始碼,Flutter 自定義 虛線 分割線原始碼Flutter
- 直播平臺搭建,自定義氣泡效果(BubbleView)View
- 直播系統app原始碼,自定義中間向兩邊滑動的滑動條APP原始碼
- PHP直播平臺原始碼搭建教程PHP原始碼
- 搭建自己的直播平臺,修改cell刪除按鈕字型大小
- 直播平臺原始碼,自定義下拉重新整理控制元件原始碼控制元件
- 直播平臺原始碼,el-button自定義圖片顯示原始碼
- 快速搭建直播平臺,點選按鈕(Button)後改變顏色
- 直播平臺原始碼,純JS實現左右滑動輪播圖原始碼JS
- 直播平臺原始碼,Android自定義View實現呼吸燈效果原始碼AndroidView
- 快速運營搭建直播軟體平臺直播原始碼!原始碼
- 直播平臺原始碼,通知欄中顯示滑動的進度條原始碼
- 直播平臺搭建原始碼,java相簿製作原始碼Java
- 直播原始碼網站,自定義平臺介面,完成各項內容更改原始碼網站
- 自定義View:自定義屬性(自定義按鈕實現)View
- php短視訊原始碼,向左滑動顯示刪除按鈕PHP原始碼
- 直播系統原始碼--搭建直播平臺的奠基石原始碼
- LabVIEW的自定義按鈕View
- 直播平臺搭建,實現自定義設定登入頁面
- 直播系統平臺搭建,DataBinding自定義雙向繫結
- 直播帶貨app原始碼,實現移動端的按鈕拖動APP原始碼
- 直播原始碼如何搭建一個屬於自己的直播平臺?原始碼
- 直播軟體原始碼,好看的點贊按鈕原始碼
- 直播平臺搭建,自定義View實現loading動畫載入View動畫
- 仿switch風格滑動按鈕
- 直播平臺原始碼,qt繪畫事件-設定背景圖片原始碼QT事件
- iOS 自定義鍵盤字母按鈕iOS
- Simple WPF: WPF 自定義按鈕外形
- 直播軟體原始碼,自定義RecyclerView支援快速滾動原始碼View
- 直播商城平臺,購物車長按右滑出現刪除按鈕
- 直播平臺搭建原始碼,更改圖片透明度原始碼
- 直播平臺搭建原始碼,uniapp progress進度條原始碼APP
- 直播平臺開發,Clip-path實現按鈕流動邊框動畫動畫
- JavaScript左右拖動滑動的按鈕效果JavaScript