Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QT无模式对话框窗口dos';nt对move命令的响应_C++_Qt - Fatal编程技术网

C++ QT无模式对话框窗口dos';nt对move命令的响应

C++ QT无模式对话框窗口dos';nt对move命令的响应,c++,qt,C++,Qt,我在应用程序中使用无模式对话框,当我尝试从主窗口使用无模式对话框移动命令时 非模态对话框甚至没有出现,为什么?(顺便说一句,如果我删除move命令,一切正常,调用时可以看到对话框,我会尝试将其移动到systray时代。 下面是一些代码: M 由于对话框有一个父控件,move()所取的坐标是相对于父控件的。您的systray坐标可能是全局坐标?然后使用QWidget::mapFromGlobal()对它们进行映射。由于对话框有一个父控件,坐标move()获取是相对于父窗口小部件的。您的systra

我在应用程序中使用无模式对话框,当我尝试从主窗口使用无模式对话框移动命令时
非模态对话框甚至没有出现,为什么?(顺便说一句,如果我删除move命令,一切正常,调用时可以看到对话框,我会尝试将其移动到systray时代。
下面是一些代码: M


由于对话框有一个父控件,move()所取的坐标是相对于父控件的。您的systray坐标可能是全局坐标?然后使用QWidget::mapFromGlobal()对它们进行映射。

由于对话框有一个父控件,坐标move()获取是相对于父窗口小部件的。您的systray坐标可能是全局坐标?然后使用QWidget::mapFromGlobal()将对话框移动到系统托盘的左上角。move命令将对话框的左上角放置在您指示其移动的位置。如果没有影响,可能是systray将始终在对话框上方绘制(因此不允许显示).

您似乎正在将对话框移动到系统托盘的左上角。move命令将对话框的左上角放置在您告诉它移动的位置。如果没有影响,则可能是systray将始终在您的对话框上方绘制(因此不允许显示该对话框)。

由于该对话框有父级,move()相对于父窗口小部件。您的systray坐标可能是全局坐标?然后使用QWidget::mapFromGlobal()进行映射。由于对话框有父窗口小部件,move()相对于父窗口小部件。您的systray坐标可能是全局坐标?然后使用QWidget::mapFromGlobal()进行映射这很可能是这样的,这意味着如果他的父对话框不在左上角,他可能会将对话框移出屏幕,这就说明他根本看不到对话框。这很可能是这样的,这意味着如果他的父对话框不在左上角,他可能会我把他的对话从屏幕上删除了,这就解释了为什么我根本看不到它。
odelessDialog* ModelessDialog= new ModelessDialog(this);
ModelessDialog->setModal(false);
ModelessDialog->setAttribute(Qt::WA_DeleteOnClose);
int topLeft_x = m_SystrayReq.topLeft().x();
int topLeft_y = m_SystrayReq.topLeft().y();
// the valus of x & y are just fine .
        ModelessDialog->move(topLeft_x,topLeft_y);
        ModelessDialog->show();