Schrumpfen ein QPushButton Breite auf das minimum
Dies scheint wie eine einfache Sache, aber ich kann nicht scheinen, um es herauszufinden. Wie mache ich die Taste die minimale Breite. Hält Sie dehnt sich aus, um die Breite des layout-ich steckte es in. Im folgenden Beispiel, die QPushButton-Breite enden, up die gleichen, wie die QLabel:
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
class MyWindow(QWidget):
def __init__(self,parent = None):
QWidget.__init__(self,parent)
layout = QVBoxLayout()
layout.addWidget(QLabel('this is a really, really long label that goes on and on'))
layout.addWidget(QPushButton('short button'))
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
InformationsquelleAutor noisygecko | 2013-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
setMaximumWidth funktioniert bei mir
width = btn.fontMetrics().boundingRect(re.sub('&(?=(?:&&)*[^&])', '', text)).width() + 7
. Sie können ersetzen Sie einfach alle&
werden, gefolgt von einer geraden Anzahl von&
.Dies hat den Vorteil, dass die
&
verarbeitet, richtig in-place, anstatt wieder Hinzugefügt, um das Ende der Zeichenfolge.InformationsquelleAutor user178047
Sehen http://qt-project.org/doc/qt-4.8/qwidget.html#sizePolicy-prop und http://qt-project.org/doc/qt-4.8/qsizepolicy.html#Policy-enum zu lernen wie control widget Dimensionierung in einem dynamischen layout.
Wenn Sie keine zufriedenstellende Ergebnisse durch die änderung der SizePolicy allein (Sie sollten), Sie konnte auch einen Blick in diese nette Jungs: http://qt-project.org/doc/qt-4.8/qspaceritem.html
In meiner Anwendung habe ich ein QPushButton mit sowohl minimale und maximale Breite auf 16 setzen, mit einem Symbol der Breite 8. Es funktioniert wie vorgesehen. Doch in OS X wird der Knopf hat nicht die gleiche OS-X-Aqua-Stil wie alle anderen Tasten aber scheint wieder eine nur-Text-Schaltfläche, um erfüllen Ihre Größe auf Eigenschaften. Das ist also ein Nebeneffekt, der berücksichtigt werden muss.
InformationsquelleAutor ypnos