我使用python guidata ( https://code.google.com/p/guidata/ )包来获取用户输入。问题是gui窗口没有出现在顶部。它会隐藏在其他窗口下。我认为应该有一些windows模式的论点,我可以通过。我就是找不到。我不确定它是否相关,但我没有直接运行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,但不在顶部。
发布于 2015-02-26 13:16:54
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,但看起来应该可以完成您想要的工作。
https://stackoverflow.com/questions/28743321
复制相似问题