如何在python中使用pyqt5将QSlider添加到主窗口的工具栏
Posted
技术标签:
【中文标题】如何在python中使用pyqt5将QSlider添加到主窗口的工具栏【英文标题】:How to add QSlider to toolbar in mainwindow using pyqt5 in python 【发布时间】:2018-11-11 01:28:09 【问题描述】:我现在在 python 中使用 PyQt5 为我的程序开发 GUI。我在工具栏中添加了一些 QAction,例如开始、暂停和停止图标。但是,我不知道如何在主窗口的工具栏中添加 QSlider。我更喜欢将 QSlider 添加到由红色矩形标记的位置。谢谢!
【问题讨论】:
【参考方案1】:QToolBar 具有允许您添加小部件的addWidget() 方法:
from PyQt5 import QtCore, QtWidgets
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
toolbar = self.addToolBar("toolbar")
toolbar.addAction("start")
toolbar.addAction("pause")
toolbar.addAction("stop")
self.slider = QtWidgets.QSlider(QtCore.Qt.Horizontal)
toolbar.addWidget(self.slider)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
【讨论】:
酷!它对我有用。但是如何调整此滑块的大小?我的意思是它对我来说太长了。我已经尝试过 toolbar.setGeometry 功能,但它不起作用。还有一个问题,你知道toolbar.SetFoucusPolicy这个函数是做什么的吗?感谢您的帮助 @JiaweiLu 如果要设置固定宽度可以使用setFixedWitdh()
,例如self.slider.setFixedWidth(100)
,另一方面,SetFocusPolicy建立焦点如何获取widget的策略,例如通过按小部件、使用 TAB 键等读取doc.qt.io/qt-5/qwidget.html#focusPolicy-prop。另一方面,如果我的回答没有忘记将其标记为正确,如果您不知道该怎么做,请查看tour,这是最好的感谢方式。
出现一个问题,我们可以使用对齐方式,例如toolbar.addWidget(self.slider, alignment=QtCore.Qt.AlignCenter)
。我认为这不会简单地起作用。这个slider
可以左对齐还是居中对齐?以上是关于如何在python中使用pyqt5将QSlider添加到主窗口的工具栏的主要内容,如果未能解决你的问题,请参考以下文章
PyQt5:添加lineEdit的子类QSlider(用于在QtDesigner中提升)?
PyQt5:QSlider valueChanged 事件延迟