Können Sie mir sagen, wie Leerzeichen zwischen Schaltflächen in meinem Widget löschen? Ich möchte es tun, indem ich Befehl, setSpacing(0)
setze, aber ich weiß nicht, wo ich es einstellen sollte.PyQt: setSpacing in QGridLayout
Mein Code:
import sys
from PyQt5.QtCore import pyqtSignal, QObject
from PyQt5.QtWidgets import QMainWindow, QApplication, QGridLayout,
QPushButton,QWidget
class Saper(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
grid = QGridLayout()
self.setLayout(grid)
names = ['Cls', 'Bck', '', 'Close',
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+',
'f','i','f','i']
positions = [(i,j) for i in range(6) for j in range(4)]
for position, name in zip(positions, names):
if name == '':
continue
button = QPushButton(name)
button.setMinimumSize(20,20)
button.setMaximumSize(20,20)
grid.addWidget(button, *position)
self.setGeometry(300,300,300,300)
self.setWindowTitle('Title')
self.move(300, 150)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Saper()
sys.exit(app.exec_())
Sie könnten eine kurze Erklärung Ihrer Lösung geben, damit die anderen verstehen können. – eyllanesc
Ich habe meine Vorstellung geändert, Klasse Saper Inherent von QWidget und jetzt Tabellennamen enthält kleinere Tabellen mit Namen. Zuerst für zählt Elemente in großen Tabellen und zweitens für zählt Elemente in kleineren Tabellen. Ich füge jedes Element zu einer horizontalen Box hinzu und füge dann diese horizontale Box zur vertikalen Box hinzu. Ich wiederhole diese Aktion für jede Zeile. Wichtig ist, eine neue horizontale Box zu erstellen, nachdem die alte vertikale Box hinzugefügt wurde. –
[Bearbeiten] (https://Stackoverflow.com/posts/44945631/edit) Ihre Antwort und fügen Sie diese Informationen bitte hinzu. – eyllanesc