如何在QT5.6.1中创建自定义PushButton

时间:2016-10-19 12:10:36

标签: qt widget qt5 qpushbutton

我对QT开发很陌生。任何人都可以共享“如何在QT中创建自定义QPushButton”,以便自定义按钮具有与QPushButton相同的行为,仅与自定义属性不同。所以请任何线索或任何指示将有所帮助。 我已经尝试过QT自定义小部件示例中给出的模拟时钟示例。但我没有找到与QPushbutton相关的内容。提前谢谢。

1 个答案:

答案 0 :(得分: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;
}

按钮看起来像这样 enter image description here

如果你想做一些与外观有关的事情。 您可以使用QStyleSheet

,而不是创建自定义按钮