调用hide()和show()

时间:2016-10-19 12:12:39

标签: window qml hide show

我想隐藏一个窗口,然后再次显示它,而不会从Windows任务栏中丢失它。

Item{
ExampleItem{
 id: exampleWindow
}

现在我想从任何地方打电话:

exampleWindow.hide()

它将从屏幕和任务栏中消失

稍后我希望能够致电

exampleWindow.show()

但如果我这样做,窗口将再次出现在屏幕上,但不能连接到我的windows-taskbar。这个问题有什么解决方案吗?由于该项目在后台仍处于活动状态,我不明白为什么它会在windowstaskbar上失去连接。

(当最小化此窗口时,它将显示在屏幕底部,仅显示窗口按钮)

编辑:参见图片:我希望在调用hide()之后窗口返回此组,然后再次显示show()。 enter image description here

EDIT2:抱歉,我无法在一个小例子中重现我的项目状态。出于任何原因,我的任务栏只会显示一个窗口,即使我创建了一个额外的窗口,它将显示在桌面上。但这是某种相同的问题。如何从mainApplication获取一个额外的窗口以显示在windowstaskbar

EDIT3: 如果你像这样使用main.qml:

    import QtQuick 2.5
    import QtQuick.Window 2.2
    import QtQuick.Controls 2.0

    ApplicationWindow {
        visible: true
        width: 640
        height: 480
        title: "Hello World"

        ExampleWindow {
            id: exWin
        }
    }

并将您的代码(从答案)放到ExampleWindow.qml

Window {
    id: root
    color: 'steelblue'
    visible: true
    width: 1024
    height: 800

     Timer {
        id: tim
        interval: 1000
        repeat: true
        running: true
        onTriggered: root.visible = !root.visible
    }
}

比你得到我的问题。 启动应用程序时,我将在Windows10-Taskbar中显示两个窗口(多个(两个)窗口堆叠在一个组中)。如果计时器用完并隐藏了窗口,它已从屏幕和Windows-Taskbar(一个窗口,没有组)离开 当计时器再次发射时。该窗口将再次显示,但它将永远不会再显示在任务栏组中。按Windows + Tab键我无法到达窗口

1 个答案:

答案 0 :(得分:0)

由于我没有你的例子,我只能猜测,你想要什么。 这有助于你/按预期工作吗?

Window {
    id: root
    color: 'steelblue'
    visible: true
    width: 1024
    height: 800

    Timer {
        id: tim
        interval: 1000
        repeat: true
        running: true
        onTriggered: root.visible = !root.visible
    }
}