如何更改 PyQtGraph 上下文菜单字体大小?

How to change PyQtGraph context menu font size?

每当您右键单击 PyQtGraph 中的绘图时,我都会尝试更改菜单的字体大小。当我使用 setStyleSheet 更改整个应用程序的字体大小时,它也会更改菜单的字体大小。

之前

之后

我不想单独更改按钮的字体大小,因为我在 GUI 中有许多其他小部件,所以我更改了 app 字体大小。但它也会改变绘图菜单的字体大小。如何缩小菜单的字体大小?要么将字体大小更改得更小,要么以某种方式使菜单变大,这样单词就不会被截断。

from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg
import sys

if __name__ == '__main__':

    app = QtGui.QApplication([])

    main_window = QtGui.QMainWindow()

    widget = QtGui.QWidget()
    main_layout = QtGui.QVBoxLayout()
    widget.setLayout(main_layout)
    main_window.setCentralWidget(widget)

    button = QtGui.QPushButton('hello')

    plot_widget = pg.PlotWidget()
    plot = plot_widget.plot()

    layout = QtGui.QHBoxLayout()
    layout.addWidget(button)
    layout.addWidget(plot_widget)

    main_layout.addLayout(layout)
    main_window.show()

    app.setStyleSheet('QWidget {font-size: 30px}')

    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()

考虑到您提供的 MWE (1) 解决方案是在 QSS 中创建另一个规则来设置 QMenu 及其子部件的字体:

app.setStyleSheet("""
    QWidget {font-size: 30px}
    QMenu {font-size: 15px}
    QMenu QWidget {font-size: 15px}
""")

(1)对于更复杂的widget,我的解决方案可能会修改其他部分,因此没有通用的解决方案,但这取决于widget本身。