【发布时间】:2016-11-26 15:33:27
【问题描述】:
我正在使用这些标志创建一个对话窗口:
this->setWindowFlags(this->windowFlags() ^ Qt::WindowContextHelpButtonHint);
this->setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint);
ui.setupUi(this);
考虑到创建的对话窗口按要求保持在顶部,这可以正常工作。但是,对话框窗口也有一个复选框,其目的是让用户禁用其 alwaysontop 属性,为此,这些代码行存在于类构造函数中:
QObject::connect(ui.cbAlwaysOnTop, &QCheckBox::clicked, this, &SearchWindow::IsSetOnTop);
功能是:
void IsSetOnTop() {
if (ui.cbAlwaysOnTop->checkState())
this->setWindowFlags(this->windowFlags() | Qt::WindowStaysOnTopHint);
else
this->setWindowFlags(this->windowFlags() ^ Qt::WindowStaysOnTopHint);//^ Qt::WindowStaysOnTopHint
}
问题是,一旦复选框 alwaysontop 未选中,窗口就会消失(似乎它不再存在)。知道我做错了什么吗?
【问题讨论】:
-
还是卡在这里,我问的问题不好吗?如果是这样,我应该添加哪些信息?