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找到類似解決方案,原始方案地址回頭沒找着。

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