DtkGui
DTK Gui module
|
DWindowGroupLeader 用于设置窗口所在的组,可以把多个窗口加到同一个组. 更多...
Public 成员函数 | |
DWindowGroupLeader (quint32 groupId=0) | |
DWindowGroupLeader::DWindowGroupLeader groupId 为0时会在需要时自动创建一个有效的 groupLeaderId | |
~DWindowGroupLeader () | |
DWindowGroupLeader::~DWindowGroupLeader 对象销毁时会释放由自己自动创建的 groupLeaderId | |
quint32 | groupLeaderId () const |
DWindowGroupLeader::groupLeaderId | |
quint32 | clientLeaderId () const |
DWindowGroupLeader::clientLeaderId | |
void | addWindow (QWindow *window) |
DWindowGroupLeader::addWindow 将窗口添加到这个组 window | |
void | removeWindow (QWindow *window) |
DWindowGroupLeader::removeWindow 将窗口从这个组中移除 window | |
DWindowGroupLeader 用于设置窗口所在的组,可以把多个窗口加到同一个组.
\inmodule dtkgui
在dxcb平台上,所有未指定组的窗口都会被分配到 DWindowGroupLeader::clientLeaderId 这个组,且在窗口对应的本地窗口被创建时,会对 Qt::Dialog、Qt::Sheet、Qt::Tool、 Qt::SplashScreen、Qt::ToolTip、Qt::Drawer、Qt::Popup 类型的窗口设置 WM_TRANSIENT_FOR 属性,对于此类型的窗口,如果没有手动调用 QWindow::setTransientParent , 则会将其 WM_TRANSIENT_FOR 属性设置为所在组id,得到的效果就是:会保证此窗口显示到这个组所有其它窗口 之上。例子:
窗口topWindow一直处于窗口wa和wb上层 如果一个组内同时存在多个未设置过 QWindow::setTransientParent 的 Qt::Dialog(其它会自动设置 WM_TRANSIENT_FOR 属性的窗口也成立)类型的窗口,这些窗口之间不会互相影响显示顺序,具体的规则和 X11 ICCCM 标准一致。 {https://tronche.com/gui/x/icccm/sec-4.html#WM_TRANSIENT_FOR}
|
explicit |
DWindowGroupLeader::DWindowGroupLeader groupId 为0时会在需要时自动创建一个有效的 groupLeaderId
Dtk::Gui::DWindowGroupLeader::~DWindowGroupLeader | ( | ) |
DWindowGroupLeader::~DWindowGroupLeader 对象销毁时会释放由自己自动创建的 groupLeaderId
void Dtk::Gui::DWindowGroupLeader::addWindow | ( | QWindow * | window | ) |
DWindowGroupLeader::addWindow 将窗口添加到这个组 window
quint32 Dtk::Gui::DWindowGroupLeader::clientLeaderId | ( | ) | const |
DWindowGroupLeader::clientLeaderId
quint32 Dtk::Gui::DWindowGroupLeader::groupLeaderId | ( | ) | const |
void Dtk::Gui::DWindowGroupLeader::removeWindow | ( | QWindow * | window | ) |
DWindowGroupLeader::removeWindow 将窗口从这个组中移除 window