我们可以连接 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 新手,所以请帮我解决此错误错误:'horizo​​ntalSlider':未声明的标识符我的 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->horizo​​ntalSlider, SLOT(plus())); MainWindow::~MainWindow() 删除 ui; void MainWindow::plus() ui->horizo​​ntalSlider->setValue(horizo​​ntalSlider -> value()+1); @Yana add #include @Yana 和 #include @Yana 将 ui->horizo​​ntalSlider->setValue(horizo​​ntalSlider -> value()+1) 更改为 ui->horizo​​ntalSlider->setValue(ui->horizo​​ntalSlider -> value()+1) @Yana 如果我的回答能帮助您将其标记为正确。【参考方案2】:

或者,使用支持 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?

如何正确设置 QPushButton 的颜色?

尝试简单的 QPushButton 背景颜色更改 [重复]

如何在不同的功能中改变 QPushButton 的颜色? [复制]

QPushButton样式设置

QPushButton样式设置