• 首页
  • Qt文档
  • DTK文档
  • 玲珑文档
  • dforeignwindow_zh

    Class::DForeignWindow

    暂无该属性


    Detailed Description

    ~chinese ~chinese

    一个用于获取本地窗口信息的类,继承于 QWindow,支持 QWindow::geometry ~chinese QWindow::x QWindow::y QWindow::width QWindow::height ~chinese QWindow::title QWindow::flags QWindow::visibility QWindow::type ~chinese QWindow::windowStates QWindow::windowState 等接口的使用,另外扩展 ~chinese 增加了一部分接口,方面更加详细的获取窗口信息。依赖于 dxcb 插件,在未加载 ~chinese dxcb 插件的应用中使用时结果未知 ~chinese ~chinese

    ~chinese

    See also DWindowManagerHelper::currentWorkspaceWindowsDApplication::loadDXcbPluginDApplication::isDXcbPlatform

    DForeignWindow::Q_PROPERTY

    [private plain  ]

    int Q_PROPERTY(int )

    DForeignWindow::fromWinId

    [private plain static ]

    DForeignWindow * fromWinId(int id) ~chinese

    DForeignWindow::fromWinId ~chinese 使用这个窗口id创建一个 DForeignWindow 对象,此对象不会被加到 QGuiApplication::allWindows ~chinese 中。一般应用在需要获取一个本地窗口信息的场景。示例: ~chinese

    // a.cpp
    int main(int argc, char *argv[])
    {
        DApplication a(argc, argv);
    
        QWidget w;
    
        w.setWindowTitle("deepin");
        w.show();
    
        QFile app_win_id("/tmp/window_id.txt");
        if (app_win_id.open(QFile::WriteOnly)) {
            app_win_id.write(QByteArray::number(w.winId()));
            app_win_id.close();
        }
    
        return a.exec();
    }
    

    ~chinese

    // b.cpp
    int main(int argc, char *argv[])
    {
        DApplication::loadDXcbPlugin();
        DApplication a(argc, argv);
    
        DForeignWindow *fw = nullptr;
        QFile app_win_id("/tmp/window_id.txt");
        if (app_win_id.open(QFile::ReadOnly)) {
            fw = DForeignWindow::fromWinId(app_win_id.readAll().toInt());
        }
    
        if (fw) {
            qDebug() << fw->title();
    
            fw->connect(fw, &DForeignWindow::widthChanged, [&] {
                qDebug() << fw->width();
            });
        }
    
        return a.exec();
    }
    

    UnknownCommand先启动应用 a UnknownCommand 再启动应用 b

    ~chinese 在应用 b 启动后将看到如下输出: ~chinese

    "deepin"
    

    当改变应用 a 中的窗口宽度时,在应用 b 中会看到宽度的输出 ~chinese id ~chinese Returns ~chinese

    Warning: 不要尝试对由本应用创建的窗口调用此接口,可能会导致窗口行为发生不可逆转的变化

    DForeignWindow::wmClass

    [private plain  ]

    int wmClass() const

    DForeignWindow::pid

    [private plain  ]

    int pid() const

    DForeignWindow::pidChanged

    [private plain  ]

    void pidChanged()

    DForeignWindow::event

    [protected plain  ]

    bool event(int *)