PySide2 QComboBox控件应用

本文采用PySide2实现QComboBox的使用简单案例,创建了两个水平的QTextEdit(左右各一个)和两个QComboBox(左右各一个),当在左边的QComboBox下拉框中选取一个item时,左边的QTextEdit显示相应的item字符,当在右边的QComboBox下拉框中选取一个item时,右边边的QTextEdit显示相应的item字符

import sys
from PySide2.QtWidgets import QWidget, QComboBox, QTextEdit, QHBoxLayout, QVBoxLayout, QApplication

class ComboxDemo(QWidget):
    def __init__(self,parent=None):
        super(ComboxDemo, self).__init__(parent)
        self.setWindowTitle('ComBox例子')
        self.textEditL = QTextEdit()
        self.textEditR = QTextEdit()
        self.textEditL.resize(200, 200)
        self.textEditR.resize(200, 200)

        self.cb1 = QComboBox()
        self.cb2 = QComboBox()

        '''单个添加条目'''
        self.cb1.addItem('textEditL1')
        self.cb1.addItem('textEditL2')
        self.cb1.addItem('textEditL3')
        '''多个添加条目'''
        self.cb2.addItems(['textEditR1', 'textEditR2', 'textEditR3'])

        '''当下拉索引发生改变时发射信号触发绑定的事件'''
        self.cb1.currentIndexChanged.connect(self.selectionchange1)
        self.cb2.currentIndexChanged.connect(self.selectionchange2)

        '''设置布局,hboxup用来将两个textEdit放在同一个水平布局上,hboxdown将两个combobox放在同一个水平布局上,
        vbox用来将hboxup和hboxdown放在同一个垂直布局上,在hboxdown后面或者前面添加一条hboxdown.addstretch(1)
        可以在hboxdown的布局中添加一些空白距离,距离的大小由addstretch()括号中的值和addstretch()使用次数决定'''
        vbox = QVBoxLayout()
        hboxdown = QHBoxLayout()
        hboxup = QHBoxLayout()
        hboxup.addWidget(self.textEditL)
        hboxup.addWidget(self.textEditR)
        hboxdown.addWidget(self.cb1)
        hboxdown.addStretch(1)
        hboxdown.addWidget(self.cb2)
        hboxdown.addStretch(1)
        vbox.addLayout(hboxup)
        vbox.addLayout(hboxdown)
        self.setLayout(vbox)

    def selectionchange1(self, i):
        self.textEditL.setText(self.cb1.currentText()) #currentText():返回选中选项的文本
        print('Items in the list are:')
        '''输出选项集合中每个选项的索引与对应的内容
           count():返回选项集合中的数目'''
        for count in range(self.cb1.count()):
            print('Item'+str(count)+'='+self.cb1.itemText(count))
            print('current index',i,'selection changed',self.cb1.currentText())
    def selectionchange2(self, j):
        self.textEditR.setText(self.cb2.currentText())
        for count in range(self.cb2.count()):
            print('Item' + str(count) + '=' + self.cb2.itemText(count))
            print('current index', j , 'selection changed', self.cb2.currentText())

if __name__ == '__main__':
    app=QApplication(sys.argv)
    comboxDemo = ComboxDemo()
    comboxDemo.show()
    sys.exit(app.exec_())

效果:

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值