簡體   English   中英

如何在不使用paintEvent的情況下旋轉PyQt5 QPushButton?

[英]How to rotate PyQt5 QPushButton without using paintEvent?

或者只是在其中輸入文字。 是否可以?

我發現使用paintEvent實現如何旋轉QPushButton? ,但在我看來它不是很“pythonic”。

我不確定您是否可以,但是可以通過在按鈕上使用蒙版並使用位圖模擬前景來模擬效果。 例如:

    import sys
    from PyQt5 import QtCore, QtGui, QtWidgets

    class MyFrame(QtWidgets.QFrame):
        def __init__(self, parent=None,initials=None):
            QtWidgets.QFrame.__init__(self, parent)
            self.btn = QtWidgets.QPushButton(self)
            self.btn.setIcon(QtGui.QIcon('rotatedBitmap.png'))
            self.btn.setMask(QtGui.QBitmap('rotatedBitmapMask.png'))
            self.btn.setIconSize(QtCore.QSize(156,166))
            self.btn.move(30,30)
            self.btn.resize(156,166)
            self.btn.clicked.connect(self.printthis)

        def printthis(self):
            print('this')

    if __name__ == '__main__':
        app = QtWidgets.QApplication(sys.argv)
        Frame = MyFrame(None)
        Frame.resize(720,600)
        Frame.show()
        app.exec_()

這是一個快速示例,我不確定是否可以嚴格使用與前景和蒙版相同的位圖(實際上我不確定蒙版的規則)但它應該可以工作。 使用下圖作為測試。

按鈕的旋轉像素圖

和以下作為面具。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM