QT改变列表项的高度&隐藏列表滚动条

来源:互联网 发布:顶尖恢复软件注册码 编辑:程序博客网 时间:2024/05/16 17:34

声明:下面的代码是Python的Qt绑定,如果你使用的c++  其实也差不多 方法都一样  只是语法改一下


songList = QListWidget(self.listWgt)songList.resize(330,440)   songList.setStyleSheet("QListWidget{color:gray;font-size:12px;background:#FAFAFD}\    QListWidget:hover{color:red}")for x in range(50):    songList.addItem(u"  金池 - 有多少爱可以重来      04:"+str(x))

上面这种最常见的一般用法 ,但是如果你觉得列表项挨的太紧,不好看? 改成下面这样:

songList = QListWidget(self.listWgt)songList.resize(330,440)   #宽度超过父窗口就可以隐藏滚动条了songList.setStyleSheet("QListWidget{color:gray;font-size:12px;background:#FAFAFD}\    QListWidget:hover{color:red}")for x in range(50):    item = QListWidgetItem (u"  金池 - 有多少爱可以重来      04:"+str(x))    item.setSizeHint(QSize(290,30))  #控制行间距    songList.addItem(item)

第一种写法直接在列表中添加字符串 而第二种方法是传入一个列表项对象  这个对象有很多方法可以使用,所以针对复杂灵活的列表一定要使用第二种方式

第一种就写死了 

第二个问题是隐藏列表的滚动条,在有的场合出现滚动条是很不美观的,我网上找了好半天 都没找到解决的方法,

刚刚发现还有一个很笨的做法,就是把列表框的宽度设置为超过父级框的宽度 这样一来  滚动条就看不见了

当然前提是你采用的绝对定位,软件不允许倍拉伸 好在我的软件就是采用的绝对定位

PS:绝对定位一般都是不用的  我的软件比较特殊所以采用了绝对定位且不可拉伸 希望不要误导新手   网格布局才是使用最多的

好吧,这个滚动条只解决了我的问题 仅当参看了

如果找好的方法隐藏滚动条我在来补充

-----------------------下面又找到一个隐藏滚动条方法---------------------------------

在使用组件QListWidget时,如果列表里面添加的条目比较多  那么就会自动增加滚动条,也就是在QListWidget里面自动增加了一个QScrollBar组件

那么在设置样式的时候可以把QScrollBar的样式宽度高度设置未0就起到隐藏效果了 比分割线上面那种笨方法明显更实用了 之前那种方法会影响控件边框样式,

stylesheet如下:

setStyleSheet("QListWidget{color:gray;font-size:12px;background:#FAFAFD;}\            QScrollBar{width:0;height:0}")

应该还有其他方法可以达到相同效果,不过这种方法已经很满意了  发现其他方法我在来添加;

0 0