gpt4 book ai didi

python - QFrame 背景色与 QLineEdit、QListBoxWidget 等其他 Widget 重叠。如何避免?

转载 作者:行者123 更新时间:2023-12-04 01:25:17 27 4
gpt4 key购买 nike

在我的程序中,

QLineEdit 和 QListWidget 放置在 QVBoxLayout 中。然后QVBoxLayout放入一个带有背景颜色:橙色样式表的QFrame。

QLineEdit 和 QListWidget 也获得与 QFrame 相同的背景颜色 .如何避免背景颜色重叠 ? .

假设,如果我们通过样式表更改 QListwidget 的背景颜色,则滚动条颜色也更改为 QListWidget 颜色。

如何避免它?,我需要原生样式布局?

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

item = ["Python", "Python 2.7", "Python 2.9", "Python 3.5", "Python 3.7", "National", "Zebra",
"Apple", "X Ray","Boat", "Tiger", "Item001", "Item002", "Item003", "Item004", "Item005",
"001Item", "002Item", "003Item","004Item", "005Item", "Ball", "Cat", "Dog", "Fish",
"Gold Fish", "Star Fish"]


class myList(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Frame Example")
self.myui()

def myui(self):

self.textbox = QLineEdit(self)
self.listbox = QListWidget(self)
self.listbox.addItems(item)

vbox = QVBoxLayout()
vbox.addWidget(self.textbox)
vbox.addWidget(self.listbox)

frame = QFrame()
frame.setLayout(vbox)
frame.setStyleSheet("background-color:orange")

main_layout =QHBoxLayout()
main_layout.addWidget(frame)
self.setLayout(main_layout)

def main():
myapp = QApplication(sys.argv)
mywin = myList()
mywin.show()
sys.exit(myapp.exec_())

if __name__ == '__main__':
main()

最佳答案

除了指示它将影响的类之外,您还必须设置一个选择器(例如 objectName):

frame = QFrame()
frame.setObjectName("frame")
frame.setLayout(vbox)
frame.setStyleSheet("QFrame#frame{background-color:orange}")

enter image description here

有关更多详细信息,我建议阅读 Qt 文档:
  • https://doc.qt.io/Qt-5/stylesheet-syntax.html
  • https://doc.qt.io/qt-5/stylesheet-reference.html
  • 关于python - QFrame 背景色与 QLineEdit、QListBoxWidget 等其他 Widget 重叠。如何避免?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62046679/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com