其他分享
首页 > 其他分享> > c-QFileDialog打开第二个(可能是父级)不需要的窗口

c-QFileDialog打开第二个(可能是父级)不需要的窗口

作者:互联网

可能是由于未正确定义父窗口小部件而导致的.在QT手册或在线示例中,传递给QFileDialog :: getOpenFileName(或类似函数)的第一个参数通常为“ this”.就我而言,如果我用“ this”调用以下函数,它将打开对话框和另一个不包含任何内容且标题与可执行文件名称相同的窗口.我试图摆脱第二个不需要的窗口,但没有成功.我用“ gui :: parentWidget()”或“ 0”替换了“ this”,仍然是同样的问题.另外,如果我没记错的话,在将QT更新到5.0.2版之前,我没有这个问题.任何帮助,将不胜感激.

void gui::on_coordinatesBrowse_clicked()
{
     QString fileName = QFileDialog::getOpenFileName(this,"Open File");
//.....
}

我有:

gui::gui(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::gui)
{
    ui->setupUi(this);
//.....
}

int main(int argc, char *argv[]) 
{
    QApplication a(argc, argv);
    gui mainW;
    mainW.show();
    return a.exec();
}

解决方法:

我以为我也在Linux上的Qt5.4.0 x64上也遇到了这种情况.

我使用QtCreator创建了类似情况,并在小部件编辑模式(F3)中使用了“转到插槽…”上下文菜单,该菜单会自动为我创建一个插槽.

然后,我重命名了按钮,重命名了功能,并在.ui文件中使用了插槽编辑模式(F3).由于仅显示通过插槽编辑模式的连接,因此我认为我已经准备就绪.但是旧的连接仍然存在,导致出现两个信号…

标签:c,qt,qt-creator
来源: https://codeday.me/bug/20191011/1892307.html