我正在使用python guidata(https://code.google.com/p/guidata/)包来获取用户输入。问题是gui窗口没有出现在顶部。它隐藏在其他窗户下面。我认为应该有一些我可以传递的窗口模态参数。我找不到他们。 不确定它是否相关,但我没有直接运行python脚本,我正在运行的基本上是一个运行的bat文件
python.exe myscript.py
我希望窗口位于顶部(首选)或窗口为模态(下一个最佳解决方案)
后来添加: 给出一个示例代码我只是在guidata网站上粘贴了一个例子。我的代码或多或少相似
import guidata
_app = guidata.qapplication() # not required if a QApplication has already been created
import guidata.dataset.datatypes as dt
import guidata.dataset.dataitems as di
class Processing(dt.DataSet):
"""Example"""
a = di.FloatItem("Parameter #1", default=2.3)
b = di.IntItem("Parameter #2", min=0, max=10, default=5)
type = di.ChoiceItem("Processing algorithm",
("type 1", "type 2", "type 3"))
param = Processing()
param.edit()
行param.edit()显示gui但不在顶部
答案 0 :(得分:0)
from guidata.qt.QtGui import QMainWindow, QSplitter
# snip a lot of code
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
# more snipping
if __name__ == '__main__':
from guidata.qt.QtGui import QApplication
import sys
app = QApplication(sys.argv)
window = MainWindow()
window.show()
# these two lines presumably will bring the window to the front
window.setWindowState(window.windowState() & ~QtCore.Qt.WindowMinimized | QtCore.Qt.WindowActive)
# this will activate the window
window.activateWindow()
sys.exit(app.exec_())
我不确定是否需要这些额外的行 - 我不熟悉PyQT,但它看起来应该做你想要的。