繁体   English   中英

如何在Qt中绘制关闭,最小化和最大化按钮?

[英]How do I draw the close, minimize, and maximize buttons in Qt?

我创建了一个this->setWindowFlags(Qt::FramelessWindowHint); 因此没有标题栏。 因此,我正在执行自己的。 我想知道,但是,在继续之前,是否存在一种以本机OS方式添加关闭,最小化和最大化按钮的标准方法(即,在Windows上看起来应该像Windows关闭按钮,对于osx一样)和linux)。

QStyle采用了大量基于OS风格的标准图标。 您可以从当前的操作系统样式中获取此图标,然后自行绘制。

这是一个简单的实现方式,仅供参考。

class TitleBar : public QWidget
{
    Q_OBJECT
public:
    explicit TitleBar(QWidget *parent = 0)
        :QWidget(parent)
    {
        QStyle *style = qApp->style();
        QIcon closeIcon = style->standardIcon(QStyle::SP_TitleBarCloseButton);
        QIcon maxIcon = style->standardIcon(QStyle::SP_TitleBarMaxButton);
        QIcon minIcon = style->standardIcon(QStyle::SP_TitleBarMinButton);

        QPushButton *min = new QPushButton(this);
        QPushButton *max = new QPushButton(this);
        QPushButton *close = new QPushButton(this);
        min->setIcon(minIcon);
        max->setIcon(maxIcon);
        close->setIcon(closeIcon);

        QHBoxLayout *layout = new QHBoxLayout(this);
        layout->setSpacing(0);
        layout->addWidget(min);
        layout->addWidget(max);
        layout->addWidget(close);
        setLayout(layout);
    }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM