Я очень новичок в разработке QT. Может ли кто-нибудь поделиться «Как создать пользовательскую кнопку QPushButton в QT», чтобы пользовательская кнопка имела то же поведение, что и QPushButton, только отличается от пользовательских свойств. Поэтому, пожалуйста, любая подсказка или любое направление к этому будет полезно. Я попытался использовать пример аналоговых часов, который приведен в примере пользовательского виджета QT. Но я не нашел связанного с QPushbutton. Заранее спасибо.
Как создать пользовательскую кнопку в QT5.6.1
comment
1) Прежде всего, вы должны начать с подкласса класса qpusbutton. 2) Затем вам нужно использовать Google, чтобы найти это видео.
- person Mikhail   schedule 19.10.2016
Ответы (1)
Это очень просто. Сначала вам нужно создать подкласс QPushButton. Добавьте свои методы, чтобы улучшить его. Готово.
Например, я написал CustomButton, у которого есть дополнительный метод для реверсирования текста.
CustomButton.h
#ifndef CUSTOMBUTTON_H
#define CUSTOMBUTTON_H
#include <QPushButton>
class CustomButton : public QPushButton
{
public:
CustomButton( const QString& text, QWidget* parent = 0 );
// Enhancement, it will reverse the button text
void reverseText();
};
#endif // CUSTOMBUTTON_H
CustomButton.cpp
#include "CustomButton.h"
#include "algorithm"
CustomButton::CustomButton( const QString& text, QWidget* parent )
: QPushButton( text, parent )
{
}
void CustomButton::reverseText()
{
QString buttonText = text();
std::reverse(buttonText.begin(), buttonText.end());
setText( buttonText );
}
main.cpp
#include <QApplication>
#include "CustomButton.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
CustomButton w( "MyButton" );
w.show();
w.reverseText();
a.exec();
return 0;
}
Если вы хотите сделать что-то, связанное с внешним видом. Вместо создания пользовательской кнопки вы можете использовать QStyleSheet.
person
sanjay
schedule
19.10.2016
Спасибо за решение, но я буду более признателен, если вы объясните/предложите, как использовать эту настраиваемую кнопку в качестве нового плагина виджета и вызвать другой проект со всеми его настраиваемыми методами, скажем, в этом случае обратный метод.
- person Avi; 20.10.2016
Он будет вести себя как любой другой виджет. Что вы имеете в виду под плагином? вы говорите о плагине QtCreator Designer?
- person sanjay; 20.10.2016
Да, плагин QtCreator Designer, который также использует класс художника для создания кнопки и не использует таблицу стилей.
- person Avi; 20.10.2016