当前位置:网站首页>Use of RadioButton in QT

Use of RadioButton in QT

2022-06-11 11:52:00 Sensh

Qt in radioButton Use

First in ui Drag several on the interface radioButton Control , Pictured ( Add a Group Box):
 Insert picture description here

Go straight to the code :

//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QAbstractButton> 
//QAbstractButton Class is an abstract base class for button parts , Provides functions that are common to buttons .
//QAbstractButton Provides click and tick buttons .QRadioButton and QCheckBox Class only provides tick buttons 
#include <QButtonGroup> //

QT_BEGIN_NAMESPACE
namespace Ui {
     class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    QButtonGroup *btnGroup;  // add to buttongroup

public slots:
    void onButtonClicked(QAbstractButton *button);

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    
    ui->setupUi(this);

    //radioButton
    btnGroup= new QButtonGroup(this);
    btnGroup->addButton(ui->radioBtnV1);
    btnGroup->addButton(ui->radioBtnV2);
    btnGroup->addButton(ui->radioBtnV3);
    btnGroup->addButton(ui->radioBtnV4);

    btnGroup->setId(ui->radioBtnV1,0);
    btnGroup->setId(ui->radioBtnV2,1);
    btnGroup->setId(ui->radioBtnV3,2);
    btnGroup->setId(ui->radioBtnV4,3);
    ui->radioBtnV1->setChecked(1);  // The first... Is selected by default 

    //ButtonGroup Signal link 
    connect(btnGroup, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(onButtonClicked(QAbstractButton*)));   // Signal output selection 

}
void MainWindow::onButtonClicked(QAbstractButton *button)  //radio button choice 
{
    
    Q_UNUSED(button)
    int sigChoose = btnGroup->checkedId();  // Select signal 
    if(sigChoose==0) qDebug() << sigChoose;
    else if(sigChoose==1) qDebug() << sigChoose;
    else if(sigChoose==2) qDebug() << sigChoose;
    else if(sigChoose==3) qDebug() << sigChoose;
}

MainWindow::~MainWindow()
{
    
    delete ui;
}
原网站

版权声明
本文为[Sensh]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/162/202206111132511847.html