How to Use QPushButton/ru: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
[[Category:Developing with Qt::General]]<br />[[Category:HowTo]]<br />[[Category:Snippets]]<br />[[Category:Tutorial]]
[[Category:Developing with Qt::General]]
[[Category:HowTo]]
[[Category:Snippets]]
[[Category:Tutorial]]


[toc align_right=&quot;yes&amp;quot; depth=&quot;3&amp;quot;]
[toc align_right="yes" depth="3"]


'''Русский''' [[How_to_Use_QPushButton|English]] [[How_to_Use_QPushButton_Bulgarian|Български]] [[How_to_Use_QPushButton_Spanish|Spanish]] [[How_to_Use_QPushButton_SimplifiedChinese|简体中文]] [[How_to_Use_QPushButton_Greek|Ελληνικά]]
'''Русский''' [[How_to_Use_QPushButton|English]] [[How_to_Use_QPushButton_Bulgarian|Български]] [[How_to_Use_QPushButton_Spanish|Spanish]] [[How_to_Use_QPushButton_SimplifiedChinese|简体中文]] [[How_to_Use_QPushButton_Greek|Ελληνικά]]
Line 9: Line 12:
== QPushButton обзор ==
== QPushButton обзор ==


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


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


== Сигналы ==
== Сигналы ==
Line 34: Line 37:
=== Текст ===
=== Текст ===


Текст QPushButton может быть установлен при создании или использовании &quot;setText()&quot;:http://doc.qt.io/qt-5.0/qtwidgets/qabstractbutton.html#text-prop. Для получения текущего текста кнопки используйте &quot;text()&quot;:http://doc.qt.io/qt-5.0/qtwidgets/qabstractbutton.html#text-prop.
Текст 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 также может быть установлена при создании. После создания кнопки, иконку можно изменить с помощью &quot;setIcon()&quot;:http://doc.qt.io/qt-5.0/qtwidgets/qabstractbutton.html#icon-prop. Для получения текущей иконки кнопки используйте &quot;icon()&quot;:http://doc.qt.io/qt-5.0/qtwidgets/qabstractbutton.html#icon-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


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


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


=== Обработка сигналов кнопки ===
=== Обработка сигналов кнопки ===
Line 58: Line 61:
=== mainwindow.h ===
=== mainwindow.h ===


</code><br />#ifndef MAINWINDOW_H<br />#define MAINWINDOW_H
</code>
#ifndef MAINWINDOW_H
#define MAINWINDOW_H


#include &lt;QtGui/QMainWindow&amp;gt;<br />#include &lt;QtGui/QPushButton&amp;gt;
#include <QtGui/QMainWindow>
#include <QtGui/QPushButton>


namespace Ui {<br /> class MainWindow;<br />}
namespace Ui {
class MainWindow;
}


class MainWindow : public QMainWindow<br />{<br /> Q_OBJECT
class MainWindow : public QMainWindow
{
Q_OBJECT


public:<br /> explicit MainWindow(QWidget *parent = 0);<br /> virtual ~MainWindow();
public:
explicit MainWindow(QWidget *parent = 0);
virtual ~MainWindow();


private slots:<br /> void handleButton();
private slots:
void handleButton();


private:<br /> QPushButton *m_button;<br />};
private:
QPushButton *m_button;
};


#endif // MAINWINDOW_H<br /><code>
#endif // MAINWINDOW_H
<code>


=== mainwindow.cpp ===
=== mainwindow.cpp ===


</code><br />#include &quot;mainwindow.h&amp;quot;
</code>
#include "mainwindow.h"


#include &lt;QtCore/QCoreApplication&amp;gt;
#include <QtCore/QCoreApplication>


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


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


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


MainWindow::~MainWindow()<br />{
MainWindow::~MainWindow()
{


}<br /><code>
}
<code>


=== main.cpp ===
=== main.cpp ===


</code><br />#include &quot;mainwindow.h&amp;quot;
</code>
#include "mainwindow.h"


#include &lt;QtGui/QApplication&amp;gt;
#include <QtGui/QApplication>


int main(int argc, char *argv[])<br />{<br /> QApplication app(argc, argv);
int main(int argc, char *argv[])
{
QApplication app(argc, argv);


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


<code>
<code>
Line 104: Line 144:
== Смотрите также ==
== Смотрите также ==


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

Revision as of 09:22, 25 February 2015


[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 ===
  1. ifndef MAINWINDOW_H
  2. define MAINWINDOW_H
  1. include <QtGui/QMainWindow>
  2. 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;

};

  1. endif // MAINWINDOW_H
=== mainwindow.cpp ===
  1. include "mainwindow.h"
  1. 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 ===
  1. include "mainwindow.h"
  1. include <QtGui/QApplication>

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

QApplication app(argc, argv);

MainWindow mainWindow;

mainWindow.showMaximized();
return app.exec();

}

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

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