Pixmap alignment in QPushButtons.

Patrick Stinson patrickkidd at gmail.com
Sun Apr 26 18:13:21 BST 2020


I recall posting or commenting on a Qt bug report about vertical alignment or something similar, but I can’t remember what it was.

Are you saying that this behavior occurs when changing to PyQt5-5.11 but using the same Qt version? If this is a bug and actually not expected behavior then my initial suspicion would be that it is a function of Qt and not PyQt5. 

Generally speaking, Qt is not the most stable and reliable framework out there. It’s pretty good, but I would say the philosophy tends toward the new versus the stable. I have been working with it for over 20 years and expect regression bugs whenever I update to a newer version.


> On Apr 26, 2020, at 7:58 AM, Raymond Osborn <rayosborn at mac.com> wrote:
> 
> Since PyQt 5.11, the MacOS version of  PyQt5 appears to have had a number of issues, mostly to do with failing to repaint text boxes (e.g., see https://bugreports.qt.io/browse/QTBUG-68521 <https://bugreports.qt.io/browse/QTBUG-68521> and https://bugreports.qt.io/browse/QTBUG-68740 <https://bugreports.qt.io/browse/QTBUG-68740>). There were reports that this had been fixed by 5.12, but that has not been my experience. I haven’t had time to check on 5.14 yet. Everything seems to be fine on Linux, at least with 5.12. 
> 
> I am writing to ask if anyone has also experienced an issue with the alignment of pixmaps in QPushButtons. I have subclassed QPushButton with the following code:
> 
> class NXColorButton(QtWidgets.QPushButton):
> 
>     def __init__(self, parent=None):
>         super(NXColorButton, self).__init__(parent)
>         self.setFixedSize(20, 20)
>         self.setIconSize(QtCore.QSize(12, 12))
>         pixmap = QtGui.QPixmap(QtCore.QSize(12, 12))
>         pixmap.fill(QtGui.QColor(QtCore.Qt.white))
>         self.setIcon(QtGui.QIcon(pixmap))
> 
> In PyQt 5.9, this produced the following button on the right:
> <Color Button PyQt 5.9.7.png>
> 
> In PyQt 5.14.2, it produces this:
> <Color Button PyQt 5.14.2.png>
> 
> When I query the sizes, they agree with the values in the code, but although the pixel map is square, the QPushButton below it is clearly not 20x20. It’s rectangular for a start. I can make it nearly square if I increase the size to 30x30. For comparison, the QLineEdit box to the left is 21 pixels high.
> 
> I can write up a bug report but I wanted to find out if this is a known issue or easy to fix.
> 
>> Ray Osborn

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20200426/c68cb0cd/attachment.htm>


More information about the PyQt mailing list