代码修改只显示修改后的部分#ifndef SWITCHFORM_H#define SWITCHFORM_H#include QWidget#include QTimer#include QColornamespace Ui class SwitchForm;class SwitchForm public QWidget Q_OBJECTpublic explicit SwitchFo
以下是修改后的代码部分:
void SwitchForm::paintEvent(QPaintEvent *ev)
{
QPainter painter(this);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing);
// 绘制背景
drawBackGround(&painter);
// 绘制滑块
drawSlider(&painter);
}
void SwitchForm::mousePressEvent(QMouseEvent *ev)
{
Q_UNUSED(ev)
m_checked = !m_checked;
emit statusChanged(m_checked);
// 计算步长
m_step = width() / 10;
// 计算滑块X轴终点坐标
if (m_checked) {
m_endX = width() - height();
} else {
m_endX = 0;
}
// 判断是否使用动画
if (m_animation) {
m_timer->start();
} else {
m_startX = m_endX;
update();
}
}
void SwitchForm::updateValue()
{
if (m_checked) {
if (m_startX < m_endX) {
m_startX += m_step;
} else {
m_startX = m_endX;
m_timer->stop();
}
} else {
if (m_startX > m_endX) {
m_startX -= m_step;
} else {
m_startX = m_endX;
m_timer->stop();
}
}
update();
}
在paintEvent函数中,只保留绘制背景和滑块的代码。在mousePressEvent函数中,只保留切换状态的代码和动画相关的代码。updateValue函数中只保留滑块位置更新的代码。
这样修改后,只显示了修改后的部分代码。
原文地址: https://www.cveoy.top/t/topic/iy4b 著作权归作者所有。请勿转载和采集!