QPushButton在layout中有间隙的解决方案

QPushButton在layout中有间隙的解决方案

解决layout中pushbutton间隙

发现在boxlayout中添加qpushbutton时即使设置了自动排版,但依旧会在button之间有个小间隙,如下图所示:
在这里插入图片描述
在这里插入图片描述
该layout中已经设置了所有的space和margin都为0,但依旧会有上述情况,解决思路是设置margin为负值,可以通过setstylesheet解决,在designer或代码中设置均可,实现方式如下:

代码设置样式表

//方式1
    ui->pushButton->setStyleSheet(QString("QPushButton{margin:-1px;}"));
    ui->pushButton_2->setStyleSheet(QString("QPushButton{margin:-1px;}"));
    ui->pushButton_3->setStyleSheet(QString("QPushButton{margin:-1px;}"));
//方式2
	setStyleSheet(QString("QPushButton{margin:-1px;}"));//对整体pushbutton均设置-1

如果只需要某一方向解决间隙问题,可用margin-left:-1px||margin-right:-1px||margin-top:-1px||margin-bottom:-1px

designer设置样式表

在这里插入图片描述

效果

在这里插入图片描述

设置无边框(可用于平面ui设计)

对pushbutton设置 setflat(true);

    ui->pushButton->setFlat(true);
    ui->pushButton_2->setFlat(true);
    ui->pushButton_3->setFlat(true);

效果

在这里插入图片描述

另一可行方案

如果只使用pushbutton基础功能,可以继承Qwidgt写一个mypushbutton类似的派生类,重写鼠标相应,设置不同状态(按下、悬浮、正常)按键图片或颜色。
测试过在layout中添加Qwidget不存在有间隙的问题。

参考

在stackoverflow找到类似解决方案,原始方案地址回头没找着。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章