QT5笔记: 15. 其他显示组件的常用功能

其他显示组件的常用功能

其他显示组件

  • 代码
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//设置rgba的修改信号和槽
connect(ui->horizontalSliderG, SIGNAL(valueChanged(int)), this, SLOT(on_horizontalSliderR_valueChanged(int)));
connect(ui->horizontalSliderB, SIGNAL(valueChanged(int)), this, SLOT(on_horizontalSliderR_valueChanged(int)));
connect(ui->horizontalSliderA, SIGNAL(valueChanged(int)), this, SLOT(on_horizontalSliderR_valueChanged(int)));
//修改lcd进制的信号和槽
connect(ui->radioBin, SIGNAL(clicked()), this, SLOT(on_radioHex_clicked()));
connect(ui->radioOct, SIGNAL(clicked()), this, SLOT(on_radioHex_clicked()));
connect(ui->radioDec, SIGNAL(clicked()), this, SLOT(on_radioHex_clicked()));
}
Widget::~Widget()
{
delete ui;
}
/**
* @brief Widget::on_horizontalSliderR_valueChanged
* @param value 未使用
* @note 主要是通过滑块滑动的值对控件背景色的更改
*/
void Widget::on_horizontalSliderR_valueChanged(int value)
{
Q_UNUSED(value);
QPalette palette = ui->editColor->palette();
int r = ui->horizontalSliderR->value();
int g = ui->horizontalSliderG->value();
int b = ui->horizontalSliderB->value();
int a = ui->horizontalSliderA->value();
QColor color;
color.setRgba(qRgba(r, g, b, a));
palette.setColor(QPalette::Base, color);
ui->editColor->setPalette(palette);
}
void Widget::on_horizontalSliderH_valueChanged(int value)
{
ui->progressBarH->setValue(value);
ui->horizontalScrollBarH->setValue(value);
}
/**
* @brief Widget::on_dial_valueChanged
* @param value 设置给LCD控件的值
*/
void Widget::on_dial_valueChanged(int value)
{
ui->lcdNumber->display(value);
}
/**
* @brief Widget::on_radioHex_clicked
* @note 设置LCD字的进制,0,8,10,16进制以及显示的位数
* @note 当超过了显示的最大数,将无法正确显示,比如2进制5位最大显示0--31,所以设置的值为32,它将无法正确显示32的2进制,显示的是32的十进制
*/
void Widget::on_radioHex_clicked()
{
QRadioButton * btn = qobject_cast<QRadioButton *>(sender());
ui->lcdNumber->setDigitCount(5);
if(btn->text().contains("Hex"))
{
ui->lcdNumber->setHexMode();
}
else if(btn->text().contains("Bin"))
{
ui->lcdNumber->setBinMode();
}
else if(btn->text().contains("Oct"))
{
ui->lcdNumber->setOctMode();
}
else
{
ui->lcdNumber->setDecMode();
}
}
  • 界面
    最终界面

__EOF__

本文作者echo_lovely
本文链接https://www.cnblogs.com/echo-lovely/p/17219511.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   echo_lovely  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示