QtCanpool 3.3.0
载入中...
搜索中...
未找到
qxmenuaccessbutton.cpp
浏览该文件的文档.
1
6
7#include <QStyle>
8
10
11class QxMenuAccessButtonPrivate
12{
13 QX_DECLARE_PUBLIC(QxMenuAccessButton)
14public:
15 Qt::Orientation m_orientation;
16};
17
18QxMenuAccessButton::QxMenuAccessButton(QWidget *parent)
19 : QToolButton(parent)
20{
23 d->m_orientation = Qt::Horizontal;
24
25 setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
26 setPopupMode(QToolButton::InstantPopup);
27 setObjectName(QLatin1String("qtc_qxmenuaccessbutton"));
28}
29
31
33{
34 Q_D(const QxMenuAccessButton);
35 QSize sz = QToolButton::sizeHint();
36 int w = style()->pixelMetric(QStyle::PM_MenuButtonIndicator, Q_NULLPTR, this);
37 if (d->m_orientation == Qt::Horizontal) {
38 return QSize(qMax(sz.width() / 2, w), sz.height());
39 } else {
40 return QSize(sz.width(), qMax(sz.height() / 2, w));
41 }
42}
43
44void QxMenuAccessButton::setOrientation(Qt::Orientation orientation)
45{
47 if (d->m_orientation == orientation) {
48 return;
49 }
50 d->m_orientation = orientation;
51 updateGeometry();
52}
53
virtual QSize sizeHint() const
void setOrientation(Qt::Orientation orientation)
#define QX_APP_END_NAMESPACE
#define QX_INIT_PRIVATE(Class)
#define QX_DECLARE_PUBLIC(Class)
#define Q_NULLPTR
Copyleft (C) 2025 maminjie canpool@163.com SPDX-License-Identifier: MulanPSL-2.0
#define QX_APP_BEGIN_NAMESPACE
#define QX_FINI_PRIVATE()