python - 如何在 PyQt5 中从头开始制作按钮?

标签 python python-3.x pyqt pyqt5

在制作程序期间,我需要创建一个带有 QTextEdit 和 QPushButton 的小部件。我这样做了,但按钮看起来像 3D 对象。在此之前,我认为按钮是平的。

我试图更改按钮的颜色,但它仍然有音量。

from PyQt5 import QtWidgets
class Window(QtWidgets.QWidget):
    def __init__(self):
        QtWidgets.QWidget.__init__(self)
        self.resize(300, 200)
        self.setStyleSheet('background-color: white')
        self.setWindowTitle('Test')
        self.button = QtWidgets.QPushButton('Button')
        self.box = QtWidgets.QVBoxLayout()
        self.box.addWidget(self.button)
        self.setLayout(self.box)
if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    win = Window()
    win.show()
    sys.exit(app.exec_())

如果我希望窗口保持白色,按钮平坦,该如何处理?

任何帮助将不胜感激。

最佳答案

除了删除边框之外,还必须将按钮的 flat 属性设置为 True:

from PyQt5 import QtWidgets

qss = """
#Window{ 
    background-color: white 
}
QPushButton[flat="true"]{
    background-color: black;
    border: 0px;
}
"""


class Window(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)
        self.resize(300, 200)
        self.setObjectName("Window")
        self.setWindowTitle("Test")
        self.button = QtWidgets.QPushButton("Button", flat=True)

        box = QtWidgets.QVBoxLayout(self)
        box.addWidget(self.button)


if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)
    app.setStyleSheet(qss)
    win = Window()
    win.show()
    sys.exit(app.exec_())

关于python - 如何在 PyQt5 中从头开始制作按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57197184/

相关文章:

python - 在 for 循环中分离打印

python - 将 .py 转换为 .ui 文件

python - 使用 Click 将常用参数添加到组

python - 带 Tornado 的 Django TCP 服务器

python-3.x - 当导入数据帧和 header 选项为 false 时,xlwings 仍然导入 header

python - 使用 python 中的 PyQt5 按下按钮时更改 QML 中的标签

python - 如何从任意长度的 Python3 字符串数组构建 QML ListElements

python - 示例程序大o值

c++ - 如何桥接 Python 和 C++

python - 在 Python 中绘制 4 维连续线