我们可以连接 QPushButton 来改变 QSlider 的值吗?
Posted
技术标签:
【中文标题】我们可以连接 QPushButton 来改变 QSlider 的值吗?【英文标题】:Can we connect QPushButton to change values of QSlider? 【发布时间】:2017-01-02 04:08:11 【问题描述】:我有两个标记为+
和-
的按钮,我需要使用这些按钮增加和减少滑块的值,请帮我编写这个函数。
【问题讨论】:
【参考方案1】:首先创建插槽plus()
和minus()
:
public slots:
void plus();
void minus();
然后将点击的信号与相应的插槽连接起来:
connect(your minus QPushButton, SIGNAL(clicked()) , this, SLOT(minus()));
connect(your plus QPushButton, SIGNAL(clicked()) , this, SLOT(plus()));
在每个槽中执行增加或减少任务。
void your widget::plus()
your slider->setValue(your slider->value()+1);
void your widget::minus()
your slider->setValue(your slider->value()-1);
【讨论】:
我已根据您的帮助 cmets 尝试了此代码,我是 Qt 新手,所以请帮我解决此错误错误:'horizontalSlider':未声明的标识符我的 cpp 文件:#include "mainwindow.h " #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) ui->setupUi(this);连接(ui->pushButton,SIGNAL(clicked(bool)), ui->horizontalSlider, SLOT(plus())); MainWindow::~MainWindow() 删除 ui; void MainWindow::plus() ui->horizontalSlider->setValue(horizontalSlider -> value()+1); @Yana add #include或者,使用支持 C++11 的环境,使用 lambdas 而不是新插槽
connect(minusButton, &QPushButton::clicked, slider,
[slider] () slider->setValue(slider->value() - 1 ););
connect(plusButton, &QPushButton::clicked, slider,
[slider] () slider->setValue(slider->value() + 1 ););
【讨论】:
以上是关于我们可以连接 QPushButton 来改变 QSlider 的值吗?的主要内容,如果未能解决你的问题,请参考以下文章
Qt:如何连接“DialogClass1”的 QPushButton 来杀死“Class2”中的 QProcess?