在Python 3中为PyQt5添加填充到PushButton

时间:2018-02-06 16:25:17

标签: python python-3.x pyqt pyqt5 padding

我想知道如何在python中添加关于PyQt窗口的左,右,上和下边缘的填充。我已经在C ++中找到了这个代码,但是我还没能在python中使它工作。请帮我解决。

我正在使用此代码:

quit_button.setStyleSheet("padding:200px")

不幸的是,它似乎不起作用,它将按钮推到窗口的左上角,即使我更改了填充像素,它似乎也不会移动。

注意:我尝试使用quit_button.setStyleSheet("padding-left:200px")和类似padding-right,但它所做的只是使按钮标签消失。

结束目标:我希望退出按钮位于窗口的右下边缘。但是当我调整大小时,它应该保持在右下边缘,并且在窗口调整大小时不会停留在它的位置。换句话说,我希望它表现得像'普通'的Windows应用程序一样。

感谢任何帮助。谢谢

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案是覆盖resizeEvent()方法并设置新的按钮位置

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class Widget(QWidget):
    def __init__(self, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.setMinimumSize(200, 200)
        self.quit_button = QPushButton("Quit", self)

    def resizeEvent(self, event):
        p = self.rect().bottomRight()-QPoint(20, 20) - self.quit_button.rect().bottomRight()
        self.quit_button.move(p)
        QWidget.resizeEvent(self, event)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())