grafana绘图配置查询变量+多级变量联动

1 centos7安装grafana

官网 https://grafana.com/grafana/download

# https://dl.grafana.com/oss/release/grafana-6.4.2-1.x86_64.rpm
# sudo yum localinstall grafana-6.4.2-1.x86_64.rpm

启动+开机启动

# systemctl restart grafana-server
# systemctl enable grafana-server

需要先启动grafana-server服务,后开启3000端口

# firewall-cmd --add-port=3000/tcp

第一次访问:http://172.16.159.132:3000 账号:admin 密码:admin 需要修改新密码:cc123456
第二次访问,使用新密码:http://172.16.159.132:3000 账号:admin 密码:cc123456

2 准备mysql数据库

1 准备sql语句

create database dolphin;

grant all privileges on dolphin.* to dolphin@'%' identified by 'dolphinBJ2019***';

use dolphin;

CREATE TABLE `teams` (
  `id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
  `name` VARCHAR(255) NOT NULL DEFAULT '',
  `ctime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `utime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;


CREATE TABLE `apps` (
  `id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
  `teamid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
  `name` VARCHAR(255) NOT NULL DEFAULT '',
  `ctime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `utime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;


CREATE TABLE `items` (
  `id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0
### 如何重写 QCheckBox 实现自定义 Qt 复选框控件 为了创建更符合特定需求的复选框,可以通过继承 `QCheckBox` 类并重写其某些方法来实现自定义行为。以下是几种常见的定制方式: #### 1. 修改外观样式 通过重新实现 `paintEvent()` 方法来自定义绘制逻辑,从而改默认视觉效果。 ```cpp void CustomCheckBox::paintEvent(QPaintEvent *) { QPainter painter(this); // 定制绘图代码... } ``` 这种方法允许完全控制复选框的渲染过程[^2]。 #### 2. 添加新功能 如果希望扩展原有功能,则可以在子类中增加新的成员变量和公共接口函数。例如,添加额外的状态指示器或者支持多级选择模式。 ```cpp class MultiStateCheckBox : public QCheckBox { public: enum State { Unchecked, PartiallyChecked, Checked }; void setState(State state) { /* 设置状态 */ } State state() const { /* 获取当前状态 */ } protected: void mousePressEvent(QMouseEvent *event) override; }; ``` 此段代码展示了如何引入一个新的枚举类型表示不同级别的勾选情况,并提供相应的方法来进行操作[^3]。 #### 3. 调整交互行为 对于想要调整点击响应或其他用户输入的行为,可以覆盖事件处理器如 `mousePressEvent()` 或者安装事件过滤器监听特定动作的发生。 ```cpp void CustomCheckBox::mousePressEvent(QMouseEvent *event) { if (/* 条件 */) { // 执行特殊处理 } else { QCheckBox::mousePressEvent(event); // 默认行为 } } ``` 上述片段说明了当满足一定条件时执行特别的操作;否则调用基类版本保持正常流程不。 #### 4. 集成其他组件 有时可能需要将多个小部件组合在一起形成复合型控件。这时就可以利用布局管理器把几个独立的小部件排列好位置再封装到一起作为一个整体对外呈现给使用者。 ```cpp CustomComplexWidget::CustomComplexWidget(QWidget *parent) : QWidget(parent), checkBox(new QCheckBox(tr("Check me"), this)), label(new QLabel(this)) { QHBoxLayout *layout = new QHBoxLayout(this); layout->addWidget(checkBox); layout->addWidget(label); connect(checkBox, &QCheckBox::stateChanged, [=](int state){ updateLabelText(state); }); } void CustomComplexWidget::updateLabelText(int state) { switch (static_cast<Qt::CheckState>(state)) { case Qt::Unchecked: label->setText(tr("Unchecked")); break; case Qt::PartiallyChecked: label->setText(tr("Partially checked")); break; case Qt::Checked: label->setText(tr("Checked")); break; } } ``` 这段例子演示了一个由复选框加标签构成的新颖小组件,在其中实现了二者之间的联动机制[^4]。 综上所述,通过对 `QCheckBox` 的适当改造能够创造出更加灵活多样化的用户体验选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值