100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Qt5.9自定义按钮实例(上图片下文字 图片文字间距任意可调)

Qt5.9自定义按钮实例(上图片下文字 图片文字间距任意可调)

时间:2022-03-12 15:45:18

相关推荐

Qt5.9自定义按钮实例(上图片下文字 图片文字间距任意可调)

本博客主要总结一个自定义的按钮实例。该实例实现的效果是上面是图片、下面是文字,其中图片位置和文字位置任意可调。

该自定义控件的实现思路如下:

a1.新建一个类,该类继承QPushbutton,由于QPushbutton继承于QWidget,因此可以直接在该继承类里面进行布局管理和挂载控件;

a2.新建两个QLabel实例,即buttonImage和buttonTxt(是QLable实例)。分别用两个垂直布局管理器QVBoxLayout挂载,即topLayout和bottomLayout(QVBoxLayout的实例)挂载。

a3.然后新建一个垂直布局管理器mainLayout(QVBoxLayout的实例),用mainLayout将上面的两个topLayout和bottomLayout挂载进来。

a4.然后该类就可以跟QPushbutton一样调用了,只是这个按钮比QPushbutton多了一个功能,那就是可以实现任意位置的上面图片下面文字效果,其它功能跟QPushbutton一模一样。

1.1具体的实例代码如下所示:

/*自定义菜单按钮类*/QMenuButton::QMenuButton(){QMenuButton::setFixedSize(120,90);QLabel *buttonImage = new QLabel();buttonImage->setStyleSheet("QLabel{border-image:url(:/1.png)}");QLabel *buttonTxt = new QLabel();buttonTxt->setFixedHeight(20);buttonTxt->setText(tr("测试按钮"));buttonTxt->setAlignment(Qt::AlignHCenter|Qt::AlignTop);QVBoxLayout *topLayout = new QVBoxLayout();topLayout->addWidget(buttonImage);topLayout->setContentsMargins(25,0,0,0);QVBoxLayout *bottomLayout = new QVBoxLayout();bottomLayout->addWidget(buttonTxt);bottomLayout->setMargin(0);bottomLayout->setSpacing(0);QVBoxLayout *mainLayout = new QVBoxLayout();mainLayout->setMargin(0);mainLayout->setSpacing(5);mainLayout->addLayout(topLayout);mainLayout->addLayout(bottomLayout);QMenuButton::setLayout(mainLayout);}

参考内容:

/Ten10/p/Ten15.html

/i80386/p/4587065.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
Qt之自定义按钮

Qt之自定义按钮

2020-04-08

Qt自定义开关按钮

Qt自定义开关按钮

2021-04-08

qt 自定义按钮图标

qt 自定义按钮图标

2021-03-13

自定义Qt互斥按钮

自定义Qt互斥按钮

2024-07-06