How to Use QPushButton/el: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:Developing with Qt::General]] | [[Category:Developing with Qt::General]] | ||
[[Category:HowTo]] | |||
[[Category:Snippets]] | |||
[[Category:Tutorial]] | |||
[toc align_right="yes" depth="3"] | [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|English]] [[How_to_Use_QPushButton_Bulgarian|Български]] [[How_to_Use_QPushButton_Spanish|Spanish]] [[How_to_Use_QPushButton_SimplifiedChinese|简体中文]] | ||
[[How_to_Use_QPushButton_Russian|Русский]] | |||
= Πώς να χρησιμοποιούμε το QPushButton = | = Πώς να χρησιμοποιούμε το QPushButton = | ||
Line 58: | Line 62: | ||
=== mainwindow.h === | === mainwindow.h === | ||
</code> | </code> | ||
#ifndef MAINWINDOW_H | |||
#define MAINWINDOW_H | |||
#include <QtGui/QMainWindow> | #include <QtGui/QMainWindow> | ||
#include <QtGui/QPushButton> | |||
namespace Ui { | namespace Ui { | ||
class MainWindow; | |||
} | |||
class MainWindow : public QMainWindow | class MainWindow : public QMainWindow | ||
{ | |||
Q_OBJECT | |||
public: | public: | ||
explicit MainWindow(QWidget *parent = 0); | |||
virtual ~MainWindow(); | |||
private slots: | private slots: | ||
void handleButton(); | |||
private: | private: | ||
QPushButton *m_button; | |||
}; | |||
#endif // MAINWINDOW_H | #endif // MAINWINDOW_H | ||
<code> | |||
=== mainwindow.cpp === | === mainwindow.cpp === | ||
</code> | </code> | ||
#include "mainwindow.h" | |||
#include <QtCore/QCoreApplication> | #include <QtCore/QCoreApplication> | ||
MainWindow::MainWindow(QWidget *parent) | MainWindow::MainWindow(QWidget *parent) | ||
: QMainWindow(parent) | |||
{ | |||
// Create the button | |||
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 button signal to appropriate slot | ||
connect(m_button, SIGNAL (released()), this, SLOT (handleButton())); | |||
} | |||
void MainWindow::handleButton() | void MainWindow::handleButton() | ||
{ | |||
// change the text | |||
m_button->setText("Example"); | |||
// resize button | |||
m_button->resize(100,100); | |||
} | |||
MainWindow::~MainWindow() | MainWindow::~MainWindow() | ||
{ | |||
} | } | ||
<code> | |||
=== main.cpp === | === main.cpp === | ||
</code> | </code> | ||
#include "mainwindow.h" | |||
#include <QtGui/QApplication> | #include <QtGui/QApplication> | ||
int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||
{ | |||
QApplication app(argc, argv); | |||
MainWindow mainWindow; | MainWindow mainWindow; | ||
mainWindow.showMaximized(); | |||
return app.exec(); | |||
} | |||
<code> | <code> |
Revision as of 11:39, 25 February 2015
[toc align_right="yes" depth="3"]
Ελληνικά English Български Spanish 简体中文 Русский
Πώς να χρησιμοποιούμε το QPushButton
Σύνοψη του QPushButton
Χρησιμοποιώντας το "QPushButton":http://doc.qt.io/qt-5.0/qtwidgets/qpushbutton.html οι developers μπορούν να δημιουργούν και να διαχειρίζονται κουμπιά (buttons). Αυτή η κλάση είναι εύκολη στη χρήση και προσαρμόσιμη έτσι είναι μεταξύ των περισσότερο χρήσιμων κλάσεων της Qt. Συνήθως ένα κουμπί εμφανίζει κείμενο, αλλά και ένα εικονίδιο μπορεί να εμφανίζεται.
Το QPushButton κληρονομεί (inherits) το "QAbstractButton":http://doc.qt.io/qt-5.0/qtwidgets/qabstractbutton.htmlτο οποίο κληρονομεί το "QWidget":http://doc.qt.io/qt-5.0/qtwidgets/qwidget.html.
Σήματα (Signals)
Κληρονομούμενα από το QAbstractButton
- void clicked ( bool checked = false )
- void pressed ()
- void released ()
- void toggled ( bool checked )
Κληρονομούμενα από το QWidget
- void customContextMenuRequested ( const QPoint & pos )
Κληρονομούμενα από το 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 εκπέμπει (emits) σήματα (signals) εάν ένα συμβάν (event) λάβει χώρα. Για τον χειρισμό του κουμπιού συνδέουμε (connect) το κατάλληλο σήμα (signal) σε έναν υποδοχέα (slot):
connect(m_button, SIGNAL (released()),this, SLOT (handleButton()));<code>
== Παράδειγμα ==
Το ακόλουθο απλό απόσπασμα κώδικα δείχνει το τρόπο δημιουργίας και χρήσης του QPushButton. Έχει ελεγχθεί στο Qt Symbian Simulator.
Ένα στιγμιότυπο (instance) του QPushButton δημιουργείται. Το σήμα (signal) '''released()''' συνδέεται (connect) στον υποδοχέα (slot) '''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)
{
// Create the button 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);
}
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();
}
Δείτε επίσης
"Qt Buttons":http://developer.qt.nokia.com/wiki/Qt_Buttons (στα Αγγλικά)