How to Use QPushButton/fa: Difference between revisions
AutoSpider (talk | contribs) (Convert ExpressionEngine links) |
m (→بررسی اجمالی: minor changes.) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{LangSwitch}} | ||
{| style="direction:rtl;align:left" | |||
| | |||
[[Category:HowTo]] | |||
[[Category:Snippets]] | |||
[[Category:Tutorial]] | |||
== بررسی اجمالی == | |||
با استفاده از {{DocLink|QPushButton}} توسعه دهندگان میتوانند دکمهها را ایجاد و به کار گیری کنند. این کلاس به راحتی قابل استفاده و شخصیسازی است، بنابراین در میان پر استفادهترین کلاسها در Qt قرار دارد. به صورت کلی دکمه متن را نشان میدهد، اما همزمان میتوان برای نمایش یک آیکون هم از آن استفاده کرد. | |||
QPushButton از {{DocLink|QAbstractButton}} ارثبری شده است که به نوبه خود از کلاس {{DocLink|QWidget}} هم ارثبری میکند. | |||
== Signals(سیگنالها) == | |||
=== سیگنالهای ارث برده شده از QAbstractButton === | |||
{| style="direction:ltr;align:left;display:flex;" | |||
| | |||
* <tt>void clicked ( bool checked = false )</tt> | |||
* <tt>void pressed ()</tt> | |||
* <tt>void released ()</tt> | |||
* <tt>void toggled ( bool checked )</tt> | |||
|} | |||
=== سیگنالهای ارث برده شده از QWidget === | |||
{| style="direction:ltr;align:left;display:flex;" | |||
| | |||
* <tt>void customContextMenuRequested ( const QPoint &pos )</tt> | |||
|} | |||
=== سیگنالهای ارث برده شده از QObject === | |||
{| style="direction:ltr;align:left;display:flex;" | |||
| | |||
* <tt>void destroyed ( QObject * obj = 0 )</tt> | |||
|} | |||
== استفاده پاییه == | |||
=== Text === | |||
The text of QPushButton can be set upon creation or using <tt>[http://doc.qt.io/qt-5/qabstractbutton.html#text-prop setText()]</tt>. To get the current text of the button use <tt>[http://doc.qt.io/qt-5/qabstractbutton.html#text-prop text()]</tt>. | |||
=== Icon === | |||
The icon of QPushButton can also be set upon creation. After creation the icon can be changed using <tt>[http://doc.qt.io/qt-5/qabstractbutton.html#icon-prop setIcon()]</tt> To get the current icon of the button use <tt>[http://doc.qt.io/qt-5/qabstractbutton.html#icon-prop icon()]</tt> | |||
=== Set Position and Size === | |||
To set the position and the size of the button use <tt>[http://doc.qt.io/qt-5/qwidget.html#geometry-prop setGeometry()]</tt>. If you want just to modify the size of the button use <tt>[http://doc.qt.io/qt-5/qwidget.html#geometry-prop resize()]</tt> | |||
=== Handle Button === | |||
QPushButton emits signals if an event occurs. To handle the button connect its appropriate signal to a slot: | |||
<code> | |||
connect(m_button, SIGNAL (released()),this, SLOT (handleButton())); | |||
</code> | |||
== Example == | |||
The following simple code snippet shows how to create and use QPushButton. It has been tested on Qt Symbian Simulator. | |||
An instance of QPushButton is created. Signal <tt>released()</tt> is connected to slot <tt>handleButton()</tt> which changes the text and the size of the button. | |||
To build and run the example: | |||
# Create an empty folder | |||
# Create a file for each of the below code snippets and add the example code to them (the name of the file should match the name above the snippet). | |||
#* All 4 files must be in the same folder. | |||
# Using command line, navigate into the folder with the 4 files. | |||
# run qmake on the project file: <code>qmake PushButtonExample.pro</code> | |||
#* If successful it will not print any output. | |||
#* This should create a file with the name <tt>Makefile</tt> in the folder. | |||
# Build the application: <code>make</code> | |||
#* The application should compile without any issues. | |||
# Run the application: <code>./PushButtonExample</code> | |||
The above steps are for linux but can easily be followed on other systems by replacing <tt>make</tt> with the correct make call for the system. | |||
=== mainwindow.h === | |||
<code> | |||
#ifndef MAINWINDOW_H | |||
#define MAINWINDOW_H | |||
#include <QMainWindow> | |||
#include <QPushButton> | |||
namespace Ui { | |||
class MainWindow; | |||
} | |||
class MainWindow : public QMainWindow | |||
{ | |||
Q_OBJECT | |||
public: | |||
explicit MainWindow(QWidget *parent = 0); | |||
private slots: | |||
void handleButton(); | |||
private: | |||
QPushButton *m_button; | |||
}; | |||
#endif // MAINWINDOW_H | |||
</code> | |||
=== mainwindow.cpp === | |||
<code> | |||
#include "mainwindow.h" | |||
#include <QCoreApplication> | |||
MainWindow::MainWindow(QWidget *parent) | |||
: QMainWindow(parent) | |||
{ | |||
// Create the button, make "this" the parent | |||
m_button = new QPushButton("My Button", this); | |||
// set size and location of the button | |||
m_button->setGeometry(QRect(QPoint(100, 100), | |||
QSize(200, 50))); | |||
// Connect button signal to appropriate slot | |||
connect(m_button, SIGNAL (released()), this, SLOT (handleButton())); | |||
} | |||
void MainWindow::handleButton() | |||
{ | |||
// change the text | |||
m_button->setText("Example"); | |||
// resize button | |||
m_button->resize(100,100); | |||
} | |||
</code> | |||
=== main.cpp === | |||
<code> | |||
#include "mainwindow.h" | |||
#include <QApplication> | |||
int main(int argc, char *argv[]) | |||
{ | |||
QApplication app(argc, argv); | |||
MainWindow mainWindow; | |||
mainWindow.showMaximized(); | |||
return app.exec(); | |||
} | |||
</code> | |||
=== PushButtonExample.pro === | |||
<code> | |||
QT += core gui | |||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets | |||
TARGET = PushButtonExample TEMPLATE = app | |||
SOURCES += main.cpp \ mainwindow.cpp | |||
HEADERS += mainwindow.h | |||
</code> | |||
|} |
Latest revision as of 22:52, 10 April 2022
بررسی اجمالیبا استفاده از QPushButton توسعه دهندگان میتوانند دکمهها را ایجاد و به کار گیری کنند. این کلاس به راحتی قابل استفاده و شخصیسازی است، بنابراین در میان پر استفادهترین کلاسها در Qt قرار دارد. به صورت کلی دکمه متن را نشان میدهد، اما همزمان میتوان برای نمایش یک آیکون هم از آن استفاده کرد. QPushButton از QAbstractButton ارثبری شده است که به نوبه خود از کلاس QWidget هم ارثبری میکند. Signals(سیگنالها)سیگنالهای ارث برده شده از QAbstractButton
سیگنالهای ارث برده شده از QWidget
سیگنالهای ارث برده شده از QObject
استفاده پاییهTextThe text of QPushButton can be set upon creation or using setText(). To get the current text of the button use text(). IconThe icon of QPushButton can also be set upon creation. After creation the icon can be changed using setIcon() To get the current icon of the button use icon() Set Position and SizeTo set the position and the size of the button use setGeometry(). If you want just to modify the size of the button use resize() Handle ButtonQPushButton emits signals if an event occurs. To handle the button connect its appropriate signal to a slot: connect(m_button, SIGNAL (released()),this, SLOT (handleButton()));
ExampleThe following simple code snippet shows how to create and use QPushButton. It has been tested on Qt Symbian Simulator. An instance of QPushButton is created. Signal released() is connected to slot handleButton() which changes the text and the size of the button. To build and run the example:
The above steps are for linux but can easily be followed on other systems by replacing make with the correct make call for the system. mainwindow.h #ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPushButton>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
private slots:
void handleButton();
private:
QPushButton *m_button;
};
#endif // MAINWINDOW_H
mainwindow.cpp #include "mainwindow.h"
#include <QCoreApplication>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// Create the button, make "this" the parent
m_button = new QPushButton("My Button", this);
// set size and location of the button
m_button->setGeometry(QRect(QPoint(100, 100),
QSize(200, 50)));
// Connect button signal to appropriate slot
connect(m_button, SIGNAL (released()), this, SLOT (handleButton()));
}
void MainWindow::handleButton()
{
// change the text
m_button->setText("Example");
// resize button
m_button->resize(100,100);
}
main.cpp #include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow mainWindow;
mainWindow.showMaximized();
return app.exec();
}
PushButtonExample.pro QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = PushButtonExample TEMPLATE = app
SOURCES += main.cpp \ mainwindow.cpp
HEADERS += mainwindow.h
|