QListWidget如何设置背景、TAB切换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QListWidget如何设置背景、TAB切换相关的知识,希望对你有一定的参考价值。
参考技术A 按钮对应的槽函数为:void PhoneWidget::GetSelect(void)selectList = new QListWidget(this);selectList->setGeometry(QRect(0, 100, 320, 120));selectList->setFixedSize(QSize(320, 120));QPixmap pixmap(":/BG/image/select.png");QPalette palette = selectList->palette();palette.setBrush(backgroundRole(), QBrush(pixmap));selectList->setPalette(palette);//selectList->setFocusPolicy(Qt::TabFocus);//selectList->setAlternatingRowColors(true);selectList->setFocus();selectList->addItem(QString::fromUtf8("查看"));selectList->addItem(QString::fromUtf8("发送"));selectList->addItem(QString::fromUtf8("删除"));selectList->addItem(QString::fromUtf8("添加"));selectList->show();selectList->setCurrentRow(0);发现问题:编译运行没问题,可 1:背景图无效, 2:第一个被选择,tab键不能切换选择的提示框是出现在界面上的,设置键盘事件后发现,TAB键的功能对应在原来界面上,不能对QListWidget上选项进行聚焦。更不能切换了如何将样式设置为 QListWidget 中的 ScrollBar?
【中文标题】如何将样式设置为 QListWidget 中的 ScrollBar?【英文标题】:How to set the style to a ScrollBar within a QListWidget? 【发布时间】:2018-05-27 21:08:54 【问题描述】:我在为QListWidget
设置样式时遇到了一些问题。我一直在寻找如何在QListWidget
中将样式设置为ScrollBar
,但我找不到答案。
【问题讨论】:
【参考方案1】:试试看:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class myListWidget(QListWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setStyleSheet("""
QScrollBar:vertical
border: none;
background:white;
width:3px;
margin: 0px 0px 0px 0px;
QScrollBar::handle:vertical
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130), stop:1 rgb(32, 47, 130));
min-height: 0px;
QScrollBar::add-line:vertical
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130), stop:1 rgb(32, 47, 130));
height: 0px;
subcontrol-position: bottom;
subcontrol-origin: margin;
QScrollBar::sub-line:vertical
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130), stop:1 rgb(32, 47, 130));
height: 0 px;
subcontrol-position: top;
subcontrol-origin: margin;
""")
def Clicked(self,item):
QMessageBox.information(self, "ListWidget", "You clicked: "+item.text())
def main():
app = QApplication(sys.argv)
listWidget = myListWidget()
listWidget.resize(300, 120)
labels = ("Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7",
"Item 8", "Item 9", "Item 10", "Item 11", "Item 12", )
listWidget.addItems(labels)
listWidget.setWindowTitle('PyQT QListwidget Demo')
listWidget.itemClicked.connect(listWidget.Clicked)
listWidget.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
【讨论】:
以上是关于QListWidget如何设置背景、TAB切换的主要内容,如果未能解决你的问题,请参考以下文章
如何在pyqt5 QlistWidget中选择多个项目并打印它们[重复]
04-DOM操作练习:Tab栏切换(通过className设置样式)