pyqt5でボタンの間のスペースが残ってしまう
pyqt5でボタンをレイアウトするとき、setSpacing(0)
を使えばウィジット間のスペースを最小にすることが出来ます。これを使って、次のようなコードを書いてみました。
import sys
from PyQt5.QtWidgets import (QWidget,
QVBoxLayout, QHBoxLayout, QApplication, QPushButton, QLabel, QLineEdit)
from PyQt5 import*
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
#font=QtGui.QFont("00コミック7",20)
btn1=QPushButton("1")
btn1.setFixedSize(100,100)
btn2=QPushButton("2")
btn2.setFixedSize(120,100)
btn3=QPushButton("3")
btn3.setFixedSize(50,70)
btn4=QPushButton("4")
btn4.setFixedSize(90,120)
btn5=QPushButton("5")
btn5.setFixedSize(150,50)
btn6=QPushButton("6")
btn6.setFixedSize(70,100)
btn7=QPushButton("7")
btn7.setFixedSize(30,140)
btn8=QPushButton("8")
btn8.setFixedSize(100,100)
layout=QVBoxLayout()
layout.setSpacing(0)
layout2=QHBoxLayout()
layout2.setSpacing(0)
layout2.addWidget(btn1,alignment=(Qt.AlignBottom | Qt.AlignRight))
layout2.addWidget(btn2,alignment=(Qt.AlignBottom | Qt.AlignLeft))
layout3=QHBoxLayout()
layout3.setSpacing(0)
layout3.addWidget(btn3,alignment=(Qt.AlignBottom | Qt.AlignRight))
layout3.addWidget(btn4,alignment=(Qt.AlignBottom | Qt.AlignCenter))
layout3.addWidget(btn5,alignment=(Qt.AlignBottom | Qt.AlignLeft))
layout4=QHBoxLayout()
layout4.setSpacing(0)
layout4.addWidget(btn6,alignment=(Qt.AlignBottom | Qt.AlignRight))
layout4.addWidget(btn7,alignment=(Qt.AlignBottom | Qt.AlignCenter))
layout4.addWidget(btn8,alignment=(Qt.AlignBottom | Qt.AlignLeft))
layout.addLayout(layout2)
layout.addLayout(layout3)
layout.addLayout(layout4)
self.setLayout(layout)
self.setWindowTitle('Absolute')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
これを実行すると次のようなボタンのレイアウトが出来ます
しかし、これではボタン6,7,8の間にスペースが残ってしまいます。このスペースをなくしたいです。