QWidget不';在QT Designer中升级到我自己的类时不显示

QWidget不';在QT Designer中升级到我自己的类时不显示,qt,qwidget,qt-designer,Qt,Qwidget,Qt Designer,我正在尝试将QWidget子类化,以自定义我自己的标题栏(因为我制作了主框架FramelessWindowHint) 子类看起来像: TitleBar::TitleBar(QWidget *parent) { this->setAutoFillBackground(true); int width = this->width(); this->minButton = new QToolButton(this); this->closeBu

我正在尝试将QWidget子类化,以自定义我自己的标题栏(因为我制作了主框架
FramelessWindowHint

子类看起来像:

TitleBar::TitleBar(QWidget *parent)
{
    this->setAutoFillBackground(true);

    int width = this->width();
    this->minButton = new QToolButton(this);
    this->closeButton = new QToolButton(this);
    this->icon = new QLabel(this);

    this->icon->setGeometry(0, 0, 25, 25);
    this->minButton->setGeometry(width - 46, 0, 23, 23);
    this->closeButton->setGeometry(width - 23, 0, 23, 23);

    QPixmap minPix = style()->standardPixmap(QStyle::SP_TitleBarMinButton);
    QPixmap closePix = style()->standardPixmap(QStyle::SP_TitleBarCloseButton);
    QPixmap iconPix = QPixmap(QString::fromUtf8(":/Resources/HandySearch.ico")).scaled(icon->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);

    this->icon->setPixmap(iconPix);
    this->minButton->setIcon(minPix);
    this->closeButton->setIcon(closePix);

    this->minButton->setStyleSheet("background-color:transparent;");
    this->closeButton->setStyleSheet("background-color:transparent;");
}
然后我转向QT设计器,将一个QWidget添加到大型机中,并将其升级到我自己的类标题栏中,然而,似乎什么都没有显示。但是,如果我直接将代码(创建minButton和closeButton)放入主框架的构造函数中,按钮就会如预期的那样出现

那么,我如何定制自己的标题栏(或其他内容)?我不知道在将QWidget子类化并将默认小部件升级到我自己的小部件时我哪里做错了


感谢您的回答。

尝试编程,然后查看Qt Designer中的差异。您可能需要查看从
uic
生成的代码。除非您有用于这些类的Qt Designer插件,否则Qt Designer不会显示自定义类。在Qt设计器中升级小部件,并在构造函数中执行其余的设置。升级的小部件应仅在运行的应用程序中显示。