example qt pyqt qpushbutton

qt - example - Reducir un ancho de QPushButton al mínimo



qpushbutton pyqt5 (2)

Esto parece algo tan simple, pero parece que no puedo resolverlo. ¿Cómo hago para que el botón tenga el ancho mínimo? Se sigue expandiendo al ancho del diseño en el que lo puse. En el siguiente ejemplo, el ancho de QPushButton termina igual que el 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_())



setMaximumWidth me funciona

from PyQt4 import QtGui class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() layout = QtGui.QHBoxLayout() texts = [":)", "&Short", "&Longer", "&Different && text", "More && text", "Even longer button text", ] for text in texts: btn = QtGui.QPushButton(text) double = text.count(''&&'') text = text.replace(''&'', '''') + (''&'' * double) width = btn.fontMetrics().boundingRect(text).width() + 7 btn.setMaximumWidth(width) layout.addWidget(btn) self.setLayout(layout) if __name__ == ''__main__'': import sys app = QtGui.QApplication(sys.argv) mainWin = Window() mainWin.show() sys.exit(app.exec_())