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

Posted

技术标签:

【中文标题】如何在 QT5.6.1 中创建自定义按钮【英文标题】:How to Create Custom PushButton in QT5.6.1 【发布时间】:2016-10-19 12:10:35 【问题描述】:

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

【问题讨论】:

1) 首先,您必须从子类化 qpusbutton 类开始。 2)比你必须使用谷歌找到这个video 【参考方案1】:

它非常简单。首先你需要继承 QPushButton。添加您的方法来增强它。你就完成了。

例如,我写了一个自定义按钮,它有一个额外的方法来反转文本。

自定义按钮.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

自定义按钮.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

而不是创建自定义按钮

【讨论】:

感谢您的解决方案,但如果您解释/建议如何将此自定义按钮用作新的小部件插件并使用其所有自定义方法调用其他项目(在这种情况下为反向方法),我将不胜感激。 它将像任何其他小部件一样运行。你说的插件是什么意思?你说的是 QtCreator Designer 插件吗? 是的,QtCreator Designer 插件也使用painter 类来创建按钮,而不是使用StyleSheet。

以上是关于如何在 QT5.6.1 中创建自定义按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android Studio 中创建自定义图像按钮?

如何在 Kendo UI 网格中创建自定义删除/销毁按钮/命令?

在 PySimpleGui 中创建自定义按钮

在 React 中创建自定义输入类型文件按钮

使用 JButton 在 Java 中创建自定义按钮

在 Swift 中创建自定义(八角形)UIButton 的最佳方法