在QT中创建自定义按钮

时间:2017-09-08 07:37:49

标签: c++ qt qt-creator

我有我的班级,应该代表按钮(垫,如果我需要具体)。现在我想知道是否可以在我的QMainWindow课程中绘制它们。

在应用程序的第一个版本中,我在QtCreators设计器中创建了按钮。但是现在我想通过代码创建它们。如前所述,已经有了Pad类,我想要有位置,文本和其他行为。现在我的课很差:

#include <QObject>

class Pad
{
   public:
   Pad(int x, int y);

 private:
   int m_xPosition;
   int m_yPosition;
};

以下是我创建它们的方法(其中m_pads是std :: vector)

void PadsWindow::createPads(const int &numberOfPads)
{
    enablePadsWindow();

    for (int index = 0; index < numberOfPads; ++index)
    {
        m_Pads.push_back(new Pad(10, 100));
    }  
}

在这里,我想在我的QMainWindow中绘制按钮,并使其像普通的QPushButton一样。

你可以帮助别人吗?

1 个答案:

答案 0 :(得分:1)

要将自定义类用作UI窗口小部件,它必须从QWidget继承,它提供必要的接口并且已经有很多实现(您可以覆盖它们以自定义行为)。

要使窗口小部件像按钮一样,建议使用QAbstractButton或其中一个派生作为基类,因为这些已经提供了很多行为,并且自定义比向平面添加所有功能更容易QWidget

此类可以作为自定义窗口小部件添加到Qt Designer,因此您可以像对话框和布局中的任何原始Qt窗口小部件一样使用它。

你可以在网上和here找到很多关于自定义小部件的教程和常见问题解答,所以对于那些掌握了Qt和C ++基础知识的人来说,入门应该很容易。