How to Use QPushButton/ru
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
[toc align_right="yes" depth="3"]
Русский English Български Spanish 简体中文 Ελληνικά
Использование QPushButton
QPushButton обзор
Используя QPushButton разработчики могут создавать и управлять кнопками. Этот класс является простым в использовании и настройке, поэтому это один из самых полезных классов в Qt. В основном кнопка отображает текст, но также может отображаться и иконка.
QPushButton наследует QAbstractButton который в свою очередь наследует QWidget.
Сигналы
Унаследованные от QAbstractButton
- void pressed ()
void clicked( bool checked = false )<code> *
- void toggled( bool checked )
void released ()<code> *
Унаследованные от QWidget
- void destroyed ( QObject * obj = 0 )
void customContextMenuRequested ( const QPoint & pos )<code> === Унаследованные от QObject === *
Основное использование
Текст
Текст QPushButton может быть установлен при создании или использовании setText(). Для получения текущего текста кнопки используйте text().
Иконка
Икона QPushButton также может быть установлена при создании. После создания кнопки, иконку можно изменить с помощью setIcon(). Для получения текущей иконки кнопки используйте icon()
Установка позиции и размера
Чтобы задать позицию и размер кнопки используйте setGeometry(). Если вы хотите просто изменить размер кнопки используйте resize().
Обработка сигналов кнопки
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
- include <QtGui/QMainWindow>
- include <QtGui/QPushButton>
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;
};
- endif // MAINWINDOW_H
=== mainwindow.cpp ===
- include "mainwindow.h"
- include <QtCore/QCoreApplication>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// создаем кнопку m_button = new QPushButton("My Button", 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"); // изменяем размер кнопки m_button->resize(100,100);
}
MainWindow::~MainWindow() {
}
=== main.cpp ===
- include "mainwindow.h"
- include <QtGui/QApplication>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MainWindow mainWindow;
mainWindow.showMaximized(); return app.exec();
}
Смотрите также