c++ - 在 QT 中创建自定义按钮

标签 c++ qt qt-creator

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

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

#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 一样。

你能帮助大家吗?

最佳答案

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

要使小部件表现得像按钮,建议使用 QAbstractButton或其派生之一作为基类,因为它们已经提供了大部分行为,并且自定义比将所有功能添加到普通的 QWidget 更容易。

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

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

关于c++ - 在 QT 中创建自定义按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46111132/

相关文章:

c++ - ifstream::close 是否会重置 failbit 和/或 badbit?

c++ - 为什么 Eigen 的 Cholesky 分解在 Linux 上比在 Windows 上快得多?

c++ - 使用 Qt 在 Mac OS 上开始开发

windows - 为什么 g++ 找不到/链接到 qjpeg4.dll?

c++ - 分配给成员(member) union

python - 使用 setflags() 添加几个复选框到 QListWidgetItem

cmake - Qt 创建者没有看到正确的 CMake 版本

qt - 在 Qt Creator 中创建 Win32 应用程序

c++ - 使用可执行文件和 DLL 项目配置 Qt Creator

c++ - 正确读取和写入 std::vector 到文件中