gpt4 book ai didi

c++ - 如何从对话框中返回 QStringList

转载 作者:太空狗 更新时间:2023-10-29 21:27:50 25 4
gpt4 key购买 nike

我有一些 Dialog 类,通过它我可以选择文件和/或目录。在这个对话框中有一个名为 okBtn_clicked 的 fnc,在这个 fnc 中我得到了 QModelIndexes,通过它们我能够创建所选文件的 QStringList。但是这个对话框关闭后如何返回它们呢?
编辑:

QModelIndexList Dir_File_Select::okBtn_clicked_()
{
accept();
return view->selectionModel()->selectedIndexes();
}

enter image description here enter image description here

最佳答案

您仍然可以在对话框关闭后访问它,除非调用了它的析构函数。因此,最简单的方法是添加一个公共(public)函数,该函数将返回您想要的 QStringList

QStringList getList()
{
QStringList list;
// populate it
return list;
}

在您的主应用程序中,您应该将对话框的 accepted 信号与处理它并检索字符串列表的插槽连接起来。

connect(dialog, SINGAL(accepted()), this, SLOT(dialogAccepted()));

void dialogAccepted()
{
QStringList list = dialog->getList();
// do whatever you want with it
}

另一个选项是在您的对话框中创建一个信号,将QStringList 作为参数,并在接受

之前发出它
void onOKButtonClicked()
{
QStringList list = createList(); // Construct a QStringList
emit myStringListSignal(list);
accept();
}

同样,您必须将此信号与处理 QStringList

的槽连接
connect(dialog, SIGNAL(myStringListSignal(QStringList)), this, SLOT(handleDialogStringList(QStringList)));

void handleDialogStringList(QStringList list)
{
// do whatever you want with the list
}

您的 ok 按钮插槽不应返回任何内容,因为这是由 Qt 内部处理的。

关于c++ - 如何从对话框中返回 QStringList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8384534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com