Читать книгу 📗 "Основы программирования в Linux - Мэтью Нейл"
<b>#include <qcheckbox.h></b><b>QCheckBox(QWidget *parent, const char *name = 0);</b><b>QCheckBox(const QString& text, QWidget *parent, const char *name = 0);</b><b>bool QCheckBox::isChecked();</b><b>void QCheckBox::setTristate(bool y = TRUE);</b><b>bool QCheckBox::isTristate();</b>Радиокнопки — кнопки-переключатели, применяемые для отображения исключающего выбора, когда можно выбрать только один вариант из группы представленных (вспомните снова старые автомобильные радиоприемники, в которых можно было нажать только одну кнопку блока). Сами по себе кнопки
QRadioButtonQCheckBoxQButtonGroupQButtonGroup<b>#include <qbuttongroup.h></b><b>QButtonGroup(QWidget *parent = 0, const char* name = 0);</b><b>QButtonGroup(const QString& title, QWidget* parent = 0,</b><b> const char * name = 0);</b><b>int insert (QButton *button, int id = -1);</b><b>void remove(QButton *button);</b><b>int id(QButton *button) const;</b><b>int count() const;</b><b>int selectedId() const;</b>Применять виджет
QButtonGrouptitleДобавить кнопку в
QButtonGroupinsertQButtonGroupidinsertselectedIdidВсе кнопки
QRadioButtonДалее приведены прототипы конструкторов
QRadioButton<b>#include <qradiobutton.h></b><b>QRadioButton(QWidget* parent, const char* name = 0);</b><b>QRadioButton(const QString& text, QWidget *parent, const char *name = 0);</b><b>bool QRadioButton::isChecked();</b>Выполните упражнение 17.5.
QButtonТеперь применим полученные знания в примере с кнопками Qt. Приведенная далее программа создает кнопки разных типов (радиокнопки, флажки и простые кнопки), чтобы показать, как использовать эти виджеты в ваших приложениях.
1. Введите файл Buttons.h:
#include <qmainwindow.h>#include <qcheckbox.h>#include <qbutton.h>#include <qradiobutton.h>class Buttons : public CMainWindow { Q_OBJECTpublic: Buttons(QWidget *parent = 0, const char *name = 0);2. Вы запросите состояние ваших кнопок позже, в функции слота, поэтому объявите указатели кнопок и вспомогательную функцию
PrintActiveprivate: void PrintActive(QButton *button); QCheckBox *checkbox; QRadioButton *radiobutton1, *radiobutton2;private slots: void Clicked();}3. Далее следует файл Buttons.срр:
#include "Buttons.moc"#include <qbuttongroup.h>#include <qpushbutton.h>#include <qapplication.h>#include <qlabel.h>#include <qlayout.h>#include <iostream>Buttons::Buttons(QWidget *parent, const char *name) : QMainWindow(parent, name) { QWidget* widget = new QWidget(this); setCentralWidget(widget); QVBoxLayout *vbox = new QVBoxLayout(widget, 5, 10, "vbox"); checkbox = new QCheckBox("CheckButton", widget, "check"); vbox->addWidget(checkbox);4. Затем вы создаете
QButtonGroup QButtonGroup *buttongroup = new QButtonGroup(0); radiobutton1 = new QRadioButton("RadioButton1", widget, "radio1"); buttongroup->insert(radiobutton1); vbox->addWidget(radiobutton1); radiobutton2 = new QRadioButton("RadioButton2", widget, "radio2"); buttongroup->insert(radiobutton2); vbox->addWidget(radiobutton2);