Python Pyside2 暂停脚本直到用户 returns 来自滑块或 qlineedit 的值
Python Pyside2 pause script till user returns a value from a slider or qlineedit
是否可以在满足某些条件时暂停 python 脚本,以便用户可以通过弹出窗口输入内容 window,最好是 pyside2 滑块或 qlineedit,然后继续用户给出值后的脚本。
我唯一能找到的是 qMessageBox 问题,但我可以放入的唯一选项是 2 个按钮,在这种情况下没有用。
任何帮助将不胜感激。
谢谢!!
您可以使用 QDialog。 http://pyside.github.io/docs/pyside/PySide/QtGui/QDialog.html
https://wiki.qt.io/Qt_for_Python_Tutorial_SimpleDialog
做如下的事情。
from PySide import QtGui # from PySide2 import QtWidgets or from qtpy import QtWidgets
dialog = QtGui.QDialog()
lay = QtGui.QFormLayout()
dialog.setLayout(lay)
slider = QtGui.QSlider()
lay.addRow(QtGui.QLabel('Slider'), slider)
... # Accept buttons
ans = dialog.exec_() # This will block until the dialog closes
# Check if dialog was accepted?
value = slider.value()
... # Continue code.
与exec_QMessageBox类似的是这个例子。 https://gist.github.com/tcrowson/8152683242018378a00b
您或许可以使用 QMessageBox 并设置布局来改变外观。
这是怎么回事?
Essential PySide 通过 运行 事件循环工作。它运行这个无限的 while 循环,从队列中取出事件并对其进行处理。任何鼠标移动或按钮点击都是一个事件。
app = QApplication([])
app.exec_() # This is running the event loop until the application closes.
print('here') # This won't print until the application closes
您可以使用任何小部件手动复制它。
app = QApplication([]) # Required may be automatic with IPython
slider = QSlider() # No Parent
slider.show()
# Slider is not visible until the application processes the slider.show() event
app.processEvents()
while slider.isVisible(): # When user clicks the X on the slider it will hide the slider
app.processEvents() # Process events like the mouse moving the slider
print('here') # This won't print until the Slider closes
... # Continue code script
是否可以在满足某些条件时暂停 python 脚本,以便用户可以通过弹出窗口输入内容 window,最好是 pyside2 滑块或 qlineedit,然后继续用户给出值后的脚本。
我唯一能找到的是 qMessageBox 问题,但我可以放入的唯一选项是 2 个按钮,在这种情况下没有用。
任何帮助将不胜感激。
谢谢!!
您可以使用 QDialog。 http://pyside.github.io/docs/pyside/PySide/QtGui/QDialog.html
https://wiki.qt.io/Qt_for_Python_Tutorial_SimpleDialog
做如下的事情。
from PySide import QtGui # from PySide2 import QtWidgets or from qtpy import QtWidgets
dialog = QtGui.QDialog()
lay = QtGui.QFormLayout()
dialog.setLayout(lay)
slider = QtGui.QSlider()
lay.addRow(QtGui.QLabel('Slider'), slider)
... # Accept buttons
ans = dialog.exec_() # This will block until the dialog closes
# Check if dialog was accepted?
value = slider.value()
... # Continue code.
与exec_QMessageBox类似的是这个例子。 https://gist.github.com/tcrowson/8152683242018378a00b
您或许可以使用 QMessageBox 并设置布局来改变外观。
这是怎么回事?
Essential PySide 通过 运行 事件循环工作。它运行这个无限的 while 循环,从队列中取出事件并对其进行处理。任何鼠标移动或按钮点击都是一个事件。
app = QApplication([])
app.exec_() # This is running the event loop until the application closes.
print('here') # This won't print until the application closes
您可以使用任何小部件手动复制它。
app = QApplication([]) # Required may be automatic with IPython
slider = QSlider() # No Parent
slider.show()
# Slider is not visible until the application processes the slider.show() event
app.processEvents()
while slider.isVisible(): # When user clicks the X on the slider it will hide the slider
app.processEvents() # Process events like the mouse moving the slider
print('here') # This won't print until the Slider closes
... # Continue code script