Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

How to Use QPushButton/ru

From Qt Wiki
Jump to navigation Jump to search




[toc align_right="yes" depth="3"]

Русский English Български Spanish 简体中文 Ελληνικά

Использование QPushButton

QPushButton обзор

Используя "QPushButton":http://doc.qt.io/qt-5.0/qtwidgets/qpushbutton.html разработчики могут создавать и управлять кнопками. Этот класс является простым в использовании и настройке, поэтому это один из самых полезных классов в Qt. В основном кнопка отображает текст, но также может отображаться и иконка.

QPushButton наследует "QAbstractButton":http://doc.qt.io/qt-5.0/qtwidgets/qabstractbutton.html который в свою очередь наследует "QWidget":http://doc.qt.io/qt-5.0/qtwidgets/qwidget.html.

Сигналы

Унаследованные от QAbstractButton

  • void clicked( bool checked = false )<code>
    *
    
    void pressed ()
  • void released ()<code>
    *
    
    void toggled( bool checked )

Унаследованные от QWidget

  • void customContextMenuRequested ( const QPoint &amp; pos )<code>
    
    === Унаследованные от QObject ===
    
    *
    
    void destroyed ( QObject * obj = 0 )

Основное использование

Текст

Текст QPushButton может быть установлен при создании или использовании "setText()":http://doc.qt.io/qt-5.0/qtwidgets/qabstractbutton.html#text-prop. Для получения текущего текста кнопки используйте "text()":http://doc.qt.io/qt-5.0/qtwidgets/qabstractbutton.html#text-prop.

Иконка

Икона QPushButton также может быть установлена при создании. После создания кнопки, иконку можно изменить с помощью "setIcon()":http://doc.qt.io/qt-5.0/qtwidgets/qabstractbutton.html#icon-prop. Для получения текущей иконки кнопки используйте "icon()":http://doc.qt.io/qt-5.0/qtwidgets/qabstractbutton.html#icon-prop

Установка позиции и размера

Чтобы задать позицию и размер кнопки используйте "setGeometry()":http://doc.qt.io/qt-5.0/qtwidgets/qwidget.html#geometry-prop. Если вы хотите просто изменить размер кнопки используйте "resize()":http://doc.qt.io/qt-5.0/qtwidgets/qwidget.html#size-prop.

Обработка сигналов кнопки

QPushButton высылает сигналы, если происходит событие. Для обработки сигналов кнопки необходимо подключить соответствующий сигнал к слоту. Например:

connect(m_button, SIGNAL (released()),this, SLOT (handleButton()));<code>

== Пример ==

Следующий простой фрагмент кода показывает, как создавать и использовать QPushButton. Это было проверено на Qt Symbian Simulator.

Создается экземпляр QPushButton. Сигнал '''released()''' соединятся со слотом '''handleButton()''' который изменяет текст и размер кнопки.

=== mainwindow.h ===


#ifndef MAINWINDOW_H
#define MAINWINDOW_H

  1. include <QtGui/QMainWindow&gt;
    #include <QtGui/QPushButton&gt;

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
virtual ~MainWindow();

private slots:
void handleButton();

private:
QPushButton *m_button;
};

  1. endif // MAINWINDOW_H
    === mainwindow.cpp ===
    

    #include "mainwindow.h&quot;
  1. include <QtCore/QCoreApplication&gt;

MainWindow::MainWindow(QWidget *parent)
 : QMainWindow(parent)
{
// создаем кнопку
m_button = new QPushButton("My Button&quot;, this);
// устанавливаем размер и положение кнопки
m_button->setGeometry(QRect(QPoint(100, 100),
QSize(200, 50)));

// подключаем сигнал к соответствующему слоту
connect(m_button, SIGNAL (released()), this, SLOT (handleButton()));
}

void MainWindow::handleButton()
{
// меняем текст
m_button->setText("Example&quot;);
// изменяем размер кнопки
m_button->resize(100,100);
}

MainWindow::~MainWindow()
{

}

=== main.cpp ===


#include "mainwindow.h&quot;

  1. include <QtGui/QApplication&gt;

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

MainWindow mainWindow;
mainWindow.showMaximized();
return app.exec&amp;#40;&#41;;
}

Смотрите также

"Qt Buttons&quot;:http://developer.qt.nokia.com/wiki/Qt_Buttons
"Basic Qt Programming Tutorial&quot;:http://developer.qt.nokia.com/wiki/Basic_Qt_Programming_Tutorial