QListWidget控件练习


from PyQt5.Qt import *

class Window(QMainWindow):
    def __init__(self):
        super().__init__()
        self.resize(600,500)
        self.setup_ui()
    def setup_ui(self):

        self.listWidget=QListWidget(self)
        self.listWidget.resize(200,100)
        self.btn=QPushButton('click',self)
        self.btn.move(100,130)
        self.btn.clicked.connect(self.fun)
        # #加载数据
        # for i in range(10):
        #     self.listWidget.addItem(str(i))

        [self.listWidget.addItem(str(i)) for i in range(20)]

        # L=[str(i) for i in range(10)]
        # self.listWidget.addItems(L)

        #插入数据
        self.listWidget.insertItem(0,'xuan')
        self.listWidget.insertItems(4,['guoguo','shui','xumin'])

        #设置默认选项
        self.listWidget.setCurrentItem(self.listWidget.item(4))

        #设置选择模式

        self.listWidget.setSelectionMode(QAbstractItemView.ExtendedSelection)
        self.listWidget.setViewMode(QListView.IconMode)

    def fun(self):
        # print(self.listWidget.currentItem().text())#单击一个
        a=[i.text() for i in self.listWidget.selectedItems()]#打印选择的多个数据
        print(a)

         self.listWidget.takeItem(self.listWidget.currentRow())#移除鼠标选中的数据
        self.listWidget.clear()

您可以使用QStackedWidget和QComboBox来实现这个功能。QStackedWidget是一个堆栈窗口部件,可以在其中添加多个子窗口部件,并且只有一个子部件可见。QComboBox是一个下拉框部件,可以让用户选择要显示的子窗口。 以下是一个简单的示例代码: ```python from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QListWidget, QStackedWidget, QComboBox class MainWindow(QWidget): def __init__(self): super().__init__() # 创建列表部件 self.list_widget = QListWidget() self.list_widget.addItems(["Table 1", "Table 2"]) # 创建堆栈部件 self.stacked_widget = QStackedWidget() self.stacked_widget.addWidget(QWidget()) # 添加表格1 self.stacked_widget.addWidget(QWidget()) # 添加表格2 # 创建下拉框部件 self.combo_box = QComboBox() self.combo_box.addItems(["Table 1", "Table 2"]) # 连接信号和槽 self.list_widget.currentRowChanged.connect(self.stacked_widget.setCurrentIndex) self.combo_box.currentIndexChanged.connect(self.stacked_widget.setCurrentIndex) # 创建布局 list_layout = QVBoxLayout() list_layout.addWidget(self.list_widget) combo_layout = QHBoxLayout() combo_layout.addWidget(self.combo_box) main_layout = QVBoxLayout() main_layout.addLayout(list_layout) main_layout.addLayout(combo_layout) main_layout.addWidget(self.stacked_widget) self.setLayout(main_layout) if __name__ == '__main__': app = QApplication([]) window = MainWindow() window.show() app.exec_() ``` 在这个示例中,我们创建了一个QListWidget和一个QComboBox来显示要显示的表格。我们还创建了一个QStackedWidget来存储两个表格。当用户选择列表或下拉框中的项时,我们将QStackedWidget的当前索引设置为选择的项的索引。这将显示选定的表格。 请注意,这个示例中的表格部件是空的QWidget。您需要将这些部件替换为您自己的表格部件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值