gpt4 book ai didi

qt - 如果函数 raise()、activeWindow() 和其他函数不起作用,我如何将 QFileDialog 提升到前台?

转载 作者:行者123 更新时间:2023-12-01 22:21:04 25 4
gpt4 key购买 nike

我正在使用 go-qt 绑定(bind)(配方)。
我遇到了这样一个问题,即我无法将带有文件对话框的窗口向前移动,我尝试了我在 Internet 上可以找到的所有功能(及其组合),但它们都无助于弹出对话框。
我尝试使用此功能:

fileDialog.SetWindowFlag(core.Qt__WindowStaysOnTopHint,true)
fileDialog.ActivateWindow()
fileDialog.SetWindowState(core.Qt__WindowActive)
fileDialog.SetWindowState(core.Qt__WindowMinimized|core.Qt__WindowActive)
fileDialog.Raise()
fileDialog.SetFocus2()
我还注意到一个特性,如果你在 fileDialog.Exec() 之后再次调用对话框,那么它将根据需要显示在所有窗口的顶部。
本案例的代码
var fileDialog = widgets.NewQFileDialog2(nil, "Open Directory", "", "")

if fileDialog.Exec() != int(widgets.QDialog__Accepted) {
return
}

if fileDialog.Exec() != int(widgets.QDialog__Accepted) {
return
}
我正在使用对话框的功能代码:
func choseFile(){

var fileDialog = widgets.NewQFileDialog2(nil, "Open Directory", "", "")
fileDialog.SetAcceptMode(widgets.QFileDialog__AcceptOpen)
fileDialog.SetFileMode(widgets.QFileDialog__ExistingFile)
fileDialog.SetWindowFlag(core.Qt__WindowStaysOnTopHint,true)

if fileDialog.Exec() != int(widgets.QDialog__Accepted) {
return
}

fmt.Println(fileDialog.SelectedFiles()[0])
}

最佳答案

问题可能与 native 对话框有关(在我的情况下,我使用的是 ubuntu),所以我放置了标志 DontUseNativeDialog。然后问题就解决了。

filename := widgets.QFileDialog_GetOpenFileName(ac.MainWindow,"Open Directory","","","",widgets.QFileDialog__DontUseNativeDialog)
upd:即使第一个参数为零,它也可以工作。

关于qt - 如果函数 raise()、activeWindow() 和其他函数不起作用,我如何将 QFileDialog 提升到前台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63521893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com