在QT中怎么隐藏QComboBox的下拉列表并当单击QComboBox的编辑框时,就弹出QListWidget窗口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在QT中怎么隐藏QComboBox的下拉列表并当单击QComboBox的编辑框时,就弹出QListWidget窗口相关的知识,希望对你有一定的参考价值。
参考技术A 使用QComboBox::setView ( QAbstractItemView * itemView )这个方法,把你QListWidget的句柄弄进去就可以了追问谢谢,我已经实现了。我还想问您一个问题:就是当移动有QComboBox控件的窗口时,有QListWidget控件的窗口也跟着移动啊?谢谢您!
追答不是很明白你的意思
追问就是QComboBox在名字为yy的窗口上,而QListWidget在名字为zz的窗口上,当点击QComboBox的编辑框时,就弹出zz的窗口,在yy窗口的正下方,但是当我移动yy的窗口时,再次点击QComboBox的编辑框时,zz窗口在原来的地方,不是在yy窗口的正下方了,怎样让他还在他的正下方?谢谢!
追答你每次点击QComboBox的时候,把QListWidget的位置设置到QComboBox下面就可以了
追问该用哪个函数来设置呢?我是新手,不太懂,您能说详细点吗??谢谢!
本回答被提问者采纳 参考技术B 使用QComboBox::setView ( QAbstractItemView * itemView )这个方法,把你QListWidget的句柄弄进去Python Qt GUI设计:QComboBox下拉列表框类(基础篇—14)
QComboBox是一个集按钮和下拉选项于一体的控件,也被称为下拉列表框。
QComboBox类中的常用方法如下表所示:
QComboBox类中的常用信号如下表所示:
来看看QComboBox按钮类的示例,效果如下所示:
在这个例子中显示了一个下拉列表框和一个标签,其中下拉列表框中有5个选项,既可以使用QComboBox的addltem()方法添加单个选项,也可以使用addltems()方法添加多个选项,标签显示的是从下拉列表框中选择的选项。
当下拉列表框中的选项发生改变时将发射currentIndexChanged信号,连接到自定义的槽函数selectionchange()。
在方法中,当选中下拉列表框中的一个选项时,将把该选项的文本设置为标签的文本并调整标签的大小。
实现代码如下所示:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class ComboxDemo(QWidget):
def __init__(self, parent=None):
super(ComboxDemo, self).__init__(parent)
self.setWindowTitle("combox 例子")
self.resize(300, 90)
layout = QVBoxLayout()
self.lbl = QLabel("" )
self.cb = QComboBox()
self.cb.addItem("C")
self.cb.addItem("C++")
self.cb.addItems(["Java", "C#", "Python"])
self.cb.currentIndexChanged.connect(self.selectionchange)
layout.addWidget(self.cb)
layout.addWidget(self.lbl )
self.setLayout(layout)
def selectionchange(self,i):
self.lbl.setText( self.cb.currentText() )
self.lbl.adjustSize()
print( "Items in the list are :" )
for count in range(self.cb.count()):
print( 'item'+str(count) + '='+ self.cb.itemText(count) )
print( "Current index",i,"selection changed ",self.cb.currentText() )
if __name__ == '__main__':
app = QApplication(sys.argv)
comboxDemo = ComboxDemo()
comboxDemo.show()
sys.exit(app.exec_())
以上是关于在QT中怎么隐藏QComboBox的下拉列表并当单击QComboBox的编辑框时,就弹出QListWidget窗口的主要内容,如果未能解决你的问题,请参考以下文章
Python Qt GUI设计:QComboBox下拉列表框类(基础篇—14)
Python Qt GUI设计:QComboBox下拉列表框类(基础篇—14)