diff --git a/mainwindow.cpp b/mainwindow.cpp --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -57,22 +57,12 @@ MainWindow::MainWindow(QWidget *parent) this, SLOT(onNumberFormatButtonToggled(int, bool))); // setup parity selection buttons - selectParityMapper.setMapping(ui->rbNoParity, (int) QSerialPort::NoParity); - selectParityMapper.setMapping(ui->rbEvenParity, (int) QSerialPort::EvenParity); - selectParityMapper.setMapping(ui->rbOddParity, (int) QSerialPort::OddParity); + parityButtons.addButton(ui->rbNoParity, (int) QSerialPort::NoParity); + parityButtons.addButton(ui->rbEvenParity, (int) QSerialPort::EvenParity); + parityButtons.addButton(ui->rbOddParity, (int) QSerialPort::OddParity); - QObject::connect(ui->rbNoParity, &QPushButton::clicked, - &selectParityMapper, - SELECT<>::OVERLOAD_OF(&QSignalMapper::map)); - QObject::connect(ui->rbEvenParity, &QPushButton::clicked, - &selectParityMapper, - SELECT<>::OVERLOAD_OF(&QSignalMapper::map)); - QObject::connect(ui->rbOddParity, &QPushButton::clicked, - &selectParityMapper, - SELECT<>::OVERLOAD_OF(&QSignalMapper::map)); - - QObject::connect(&selectParityMapper, - SELECT::OVERLOAD_OF(&QSignalMapper::mapped), + QObject::connect(&parityButtons, + SELECT::OVERLOAD_OF(&QButtonGroup::buttonClicked), this, &MainWindow::selectParity); // init port signals diff --git a/mainwindow.h b/mainwindow.h --- a/mainwindow.h +++ b/mainwindow.h @@ -34,6 +34,7 @@ private: Ui::MainWindow *ui; QButtonGroup numberFormatButtons; + QButtonGroup parityButtons; QSerialPort serialPort; @@ -50,8 +51,6 @@ private: // note that serialPort should already have enough bytes present template double readSampleAs(); - QSignalMapper selectParityMapper; - private slots: void loadPortList(); void loadBaudRateList();