PyQt5 QComBox、QListView、QListWidget总结

一、特殊传参

    在 self.listWidget.itemClicked.connect(self.u) 中,当列表控件中的一个项目被点击itemClicked 信号会被触发。
    而连接到这个信号的槽函数 self.u 会接收到一个参数,这个参数就是被点击的项目对象。在这里,l 就是接收到的被点击的项目对象,通过
    它可以获取项目的相关信息。这种情况同样在QComBox,QListView,QMenu控件中一样存在。

二、代码

import sys

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

class myWin(QTabWidget):
    def __init__(self):
        super(myWin, self).__init__()
        self.setWindowTitle('列表控件')

        lay=QHBoxLayout()
        self.listWidget = QListWidget()
        self.comBox=QComboBox()
        self.listView=QListView()
        lay.addWidget(self.listWidget)
        lay.addWidget(self.comBox)
        lay.addWidget(self.listView)
        self.setLayout(lay)
        self.setUI_listWidget()
        self.setUI_comBox()
        self.setUI_listView()
    def setUI_listWidget(self):
        self.listWidget.addItem('选项1')
        self.listWidget.addItem('选项2')
        self.listWidget.addItem('选项3')
        self.listWidget.addItem('选项4')
        self.listWidget.addItem('选项5')
        self.listWidget.addItem('选项6')
        self.listWidget.itemClicked.connect(self.u)
    def u(self,l):
        print(l)
        '''
        在 self.listWidget.itemClicked.connect(self.u) 中,当列表控件中的一个项目被点击时,itemClicked 信号会被触发。
    而连接到这个信号的槽函数 self.u 会接收到一个参数,这个参数就是被点击的项目对象。在这里,l 就是接收到的被点击的项目对象,通过
    它可以获取项目的相关信息。这种情况同样在QComBox,QListView控件中一样存在
        '''
    def setUI_comBox(self):
        self.comBox.addItem('【下拉列表】选项1')
        self.comBox.addItem('【下拉列表】选项2')
        self.comBox.addItem('【下拉列表】选项3')
        self.comBox.addItem('【下拉列表】选项4')
        self.comBox.addItem('【下拉列表】选项5')
        self.comBox.addItem('【下拉列表】选项6')
        self.comBox.currentIndexChanged.connect(self.v)
    def v(self,m):
        print(m)
    def setUI_listView(self):
        listModel=QStringListModel()
        list1=['选项1','选项2','选项3','选项4','选项5','选项6']
        listModel.setStringList(list1)
        self.listView.setModel(listModel)
        self.listView.clicked.connect(self.w)
    def w(self,n):
        print(n)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = myWin()
    window.show()
    sys.exit(app.exec())

 同样适用于菜单对象:

代码如下:

import sys

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

class myWin(QMainWindow):
    def __init__(self):
        super(myWin, self).__init__()
        self.setWindowTitle('停靠窗口控件')
        self.mdi=QMdiArea()
        bar = self.menuBar()
        file=bar.addMenu('文件')
        # file=bar.addAction('文件')
        f1=file.addAction('新建')
        f2 = file.addAction('打开')
        f3 = file.addAction('保存')
        file.triggered.connect(self.k)
    def k(self,p):
        print(p.text())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = myWin()
    window.show()
    sys.exit(app.exec())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值