昨天看视频网站的QT视频发现一个问题,我来解决

[复制链接]
109|5
 楼主 | 2019-7-17 09:00 | 显示全部楼层 |阅读模式
本帖最后由 gaoyang9992006 于 2019-7-17 09:03 编辑

这个问题就是,视频都不完整,比如有一个课是介绍信号槽的,用滑动条控制旋钮的,刚开始讲,内容没有了,我怀疑是上传的人故意的,让你去购买他们的视频教程。其实这个技术我略懂。然后就编写了实现这个功能的代码。
untitled4.rar (4.51 KB, 下载次数: 0)

使用特权

评论回复
 楼主 | 2019-7-17 09:03 | 显示全部楼层
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H

  3. #include <QMainWindow>

  4. namespace Ui {
  5. class MainWindow;
  6. }

  7. class MainWindow : public QMainWindow
  8. {
  9.     Q_OBJECT

  10. public:
  11.     explicit MainWindow(QWidget *parent = nullptr);
  12.     ~MainWindow();

  13. private slots:
  14.     void on_horizontalSlider_valueChanged(int value);

  15. private:
  16.     Ui::MainWindow *ui;
  17. };

  18. #endif // MAINWINDOW_H
复制代码
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"

  3. MainWindow::MainWindow(QWidget *parent) :
  4.     QMainWindow(parent),
  5.     ui(new Ui::MainWindow)
  6. {
  7.     ui->setupUi(this);
  8.     connect(ui->horizontalSlider,SIGNAL(valueChanged(int)),ui->dial,SLOT(setValue(int)));
  9. }

  10. MainWindow::~MainWindow()
  11. {
  12.     delete ui;
  13. }

  14. void MainWindow::on_horizontalSlider_valueChanged(int value)
  15. {
  16.      ui->dial->setValue(ui->horizontalSlider->value());
  17. }
复制代码


使用特权

评论回复
 楼主 | 2019-7-17 09:05 | 显示全部楼层
将滑条改变的信号传递给修改旋钮值的函数。大家可以好好研究一下connect函数怎么做的,学会了这个就非常容易上手QT的图形化程序开发了。信号槽函数系统已经大部分集成了,可以实现80%的功能需求。

使用特权

评论回复
 楼主 | 2019-7-17 10:04 | 显示全部楼层
然而这只实现了,拉动滑条改变旋钮。
那么怎么添加旋转旋钮也可以改变滑条呢?
方法是类似的,给旋钮动作添加槽函数执行修改滑条命令。

使用特权

评论回复
 楼主 | 2019-7-17 10:08 | 显示全部楼层
  1. void MainWindow::on_dial_valueChanged(int value)
  2. {
  3.     ui->horizontalSlider->setValue(ui->dial->value());
  4. }
复制代码

对应的槽函数内容为上面。然后重新编译后,发现两者可以同步了。完美。

使用特权

评论回复
| 2019-7-17 10:20 | 显示全部楼层
流明

使用特权

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表