Читать книгу 📗 "Основы программирования в Linux - Мэтью Нейл"
grid->addWidget(username_entry, 0, 1, 0); grid->addWidget(password_entry, 1, 1, 0); QPushButton *button = new QPushButton("Ok", widget, "button"); grid->addWidget(button, 2, 1, Qt::AlignRight); resize(350, 200); connect(button, SIGNAL(clicked()), this, SLOT(Clicked()));}void LineEdit::Clicked(void) { std::cout << password_entry->text() << "n";}int main(int argc, char **argv) { QApplication app(argc, argv); LineEdit *window = new LineEdit(); app.setMainWidget(window); window->show(); return app.exec();}Выполнив эту программу, вы должны получить результат, показанный на рис. 17.5.

Рис. 17.5
Как это работает
Вы создали два виджета
QLineEditEchoModePushButtonQGridLayoutКнопки Qt
Кнопки виджетов вездесущи и мало отличаются внешним видом, способом применения и API в разных комплектах инструментов. Неудивительно, что Qt предлагает стандартные кнопки
PushButtonCheckBoxRadioButtonQButton: базовый класс кнопок
Все виджеты кнопок в комплекте Qt — потомки абстрактного класса
QButtonВам никогда не придется обрабатывать виджет типа
QButtonQPushButton<b>#include <qbutton.h></b><b>virtual void QButton::setText(const QString&);</b><b>virtual void QButton::setPixmap(const QPixmap&);</b><b>bool QButton::isToggleButton() const;</b><b>virtual void QButton::setDown(bool);</b><b>bool QButton::isDown() const;</b><b>bool QButton::isOn() const;</b><b>enum QButton::ToggleState { Off, NoChange, On }</b><b>ToggleState QButton::state() const;</b>У функций
isDownisOnTRUEЧасто вам нужно отключить или сделать серым вариант, если он недоступен в данный момент. Сделать недоступным любой виджет, включая QButton, можно с помощью вызова метода
QWidget::setEnable(FALSE)У
QButton□
QPushButton□
QCheckBox□
QRadioButtonQPushButton
QPushButtonQButtonclickedВы уже применяли кнопку
QPushButtonQPushButtonsetToggleButtonДалее для полноты описания приведены конструкторы и полезные методы.
<b>#include <qpushbutton.h></b><b>QPushButton(QWidget *parent, const char *name = 0);</b><b>QPushButton(const QString& text, QWidget *parent, const char *name = 0);</b><b>QPushButton(const QIconSet& icon, const QString& text,</b><b> QWidget *parent, const char * name = 0);</b><b>void QPushButton::setToggleButton(bool);</b>QCheckBox
QCheckBoxQCheckBoxВы можете также перевести кнопку
QCheckBoxQCheckBox