QComboBox下拉列表在Linux上不正确
QComboBox dropdown not proper on Linux
在Windows上:当我从不可编辑的组合框下拉列表中选择任何项目时,每次下拉列表都会向下打开,因为这就是QT在窗口上原生实现它的方式。
在Linux上:当我从下拉列表中选择第一个项目时,它会向下打开,但如果我选择任何其他项目,然后再次打开下拉列表,那么它不会完全向下展开,有些项目是向上的,有些是向下的,因为Linux的本机主题。
有什么简单的方法可以让它类似于窗口,使整个下拉列表向下打开?
此行为不取决于操作系统,而是取决于所使用的QStyle(例如,我使用KDE plasma提供的样式,该样式具有您想要的行为,但如果我使用融合样式,则会得到您不想要的行为(。因此,考虑到以上情况,一个可能的解决方案是在弹出窗口显示后修改其位置。
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class ComboBox(QtWidgets.QComboBox):
def showPopup(self):
super().showPopup()
container = self.view().parentWidget()
gp = self.mapToGlobal(self.rect().bottomLeft())
container.move(gp)
def main():
app = QtWidgets.QApplication(sys.argv)
combo = ComboBox()
combo.addItems([f"item {i}" for i in range(4)])
combo.show()
ret = app.exec_()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
相关文章:
- 使用2个键的cpp-stl::优先级队列排序不正确
- 正弦级数方程计算不正确
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 密码登录程序将永远循环并显示不正确的结果
- 这些是什么样的错误?即使我不在 Linux 上工作,我也遇到了 Linux 错误
- 找不到Linux Visual Studio代码C++文件
- 在C++中返回不正确的楼层函数值
- 形状对象的旋转和缩放不正确C++
- C++ 读取文件读取文件不正确
- 关于类的 Python 文档 - 对C++的引用不正确
- 特征 LLT 模块给出不正确的结果?
- glibcxx STL 在实现 std::valarray::sum() 时是否不正确?
- 如果语句逻辑不正确
- 来自逆 vp 矩阵和相机位置的光线方向不正确
- 不正确的操作数类型 MSVC
- 数组填充了不正确的值
- 我是否不正确地集中了这些字符数组?
- 为什么除非我使用 cout,否则我的值不正确?
- 计算幂级数的数学结果不正确
- 为什么 sizeof 在 C++ 中给出不正确的字节数?