The QCheckBox class has such a stateChanged(int state)
signal.
If you want one handler for all checkboxes, do this:
class MainClass : ... { Q_OBJECT //... private slots: void checkBoxChanged(int state); //.. }
Implementation:
MainClass::MainClass(QWidget* parent) : QMainWindow(parent) { // ... QTextEdit* MainTextEdit = new QTextEdit(this); // ! ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π΄ΠΎ Π·Π°Π΄Π°ΡΡ ΠΈΠΌΡ, ΠΈΠ½Π°ΡΠ΅ ΠΌΡ Π΅Π³ΠΎ Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ MainTextEdit->setObjectName("MainTextEdit"); connect(ItalyStyle, SIGNAL(stateChanged(int)), this, SLOT(checkBoxChanged(int))); connect(BoldStyle, SIGNAL(stateChanged(int)), this, SLOT(checkBoxChanged(int))); connect(UnderLineStyle, SIGNAL(stateChanged(int)), this, SLOT(checkBoxChanged(int))); // ... } void MainClass::checkBoxChanged(int state) { // ΠΡΠ΅ΠΌ Π½ΡΠΆΠ½ΡΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ QTextEdit* MainTextEdit = findChild<QTextEdit*>("MainTextEdit"); if( MainTextEdit != nullptr ) { // ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½ΡΠΆΠ½ΡΠΉ ΡΠ΅ΠΊΠ±ΠΎΠΊΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ if( sender()->objectName() == "ItalyStyle" ) MainTextEdit->setFontItalic(state == Qt::Checked); else if( sender()->objectName() == "BoldStyle" ) MainTextEdit->setFontWeight(state == Qt::Checked); else if( sender()->objectName() == "UnderLineStyle" ) MainTextEdit->setFontUnderline(state == Qt::Checked); } }