当选中不同的下拉框/列表框项目时显示QMessageBox PyQT

0 投票
1 回答
3668 浏览
提问于 2025-04-15 13:46

我有一个下拉框 cbLayer 和一个名为 do_stuff 的函数,结构如下:

def do_stuff(item_selected_from_cbLayer):
    new_list = []
    # do stuff based on item_selected_from_combobox and put the items in new_list
    return new_list

我想要在每次选择不同的项目时弹出一个 QMessageBox,应该怎么做呢?

QMessageBox.warning(self, "items: ", do_stuff(cb_selected_item))

1 个回答

1

写一个方法或者函数,把下面的代码放进去,然后把它和下拉框的信号currentIndexChanged连接起来:

def __init__(self):
    ...
    QObject.connect(self.cbLayer, SIGNAL("currentIndexChanged(int)"), self.warn)

def warn(index):
    QMessageBox.warning(self, "items: ", do_stuff(cbLayer.itemData(index)) )

def do_stuff(self, item):
    QMessageBox.warning(self, str(item))

我没有试过这个,但这应该能帮你入门。如果不行的话,可以看看PyQt的例子。

撰写回答