首页 > 系统相关 >QComboBox在ubuntu下不显示滚动条问题,下拉框出现位置不固定问题,设置显示最大数量不生效问题,设置item高度不生效问题

QComboBox在ubuntu下不显示滚动条问题,下拉框出现位置不固定问题,设置显示最大数量不生效问题,设置item高度不生效问题

时间:2023-08-08 22:47:03浏览次数:42  
标签:滚动条 显示 Windows Ubuntu 问题 设置 生效 下拉框

这里的Ubuntu指的是银河麒麟,问题也是在麒麟下出现的。没有在Ubuntu试过是否有同样的问题。但是估计也差不多,毕竟国产系统跟Ubuntu本来就纠缠不清。

用QT写了一个QComboBox,自定义了一些样式,在Windows下显示正常,但是在Ubuntu下不显示滚动条,下拉框位置根据当前选项变化而不是固定显示在ComboBox正下方,设置最大显示数量为5但是却依次显示全部数据,设置了item高度为20但是实际显示却非常高,问题非常多。

Windows显示正确


Ubuntu下显示错误

对于设置下拉列表高度问题,可以用下面的方法解决:

#include <QListView>
ui->comboBox->setView(new QListView());

对于设置item高度不生效问题,设置最大显示数量(setMaxVisibleItems)不生效问题,可以使用下面方法解决:

#include <QStyleFactory>
ui->comboBox->setStyle(QStyleFactory::create("Windows"));

QStyleFactory::create创建了一个Windows风格的QStyle,如果你想知道QStyleFactory::create()可以传哪些参数,可以使用:

qDebug()<<QStyleFactory::keys();

在麒麟系统下,打印了("ukui-dark", "ukui-default", "ukui-light", "ukui", "Windows", "Fusion"),系统默认是'Fusion'风格,就是特别奇怪的那种风格。

对于不显示滚动条问题,使用下面方法可以解决:

ui->comboBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
//ui->comboBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); //写这个也可以显示滚动条

设置为总是显示滚动条。
我看了下QT官方文档,系统默认是Qt::ScrollBarAsNeeded。经过测试,如果使用代码显式设置为Qt::ScrollBarAsNeeded,也是可以显示滚动条的;如果没有调用setVerticalScrollBarPolicy显式设置的话,不管QComboBox的内容有多少,都不显示滚动条。这应该是一个QT的bug。

标签:滚动条,显示,Windows,Ubuntu,问题,设置,生效,下拉框
From: https://www.cnblogs.com/chaichengxun/p/17611865.html

相关文章

  • java定时任务中创建多线程却只有一个线程运行的问题
    在定时任务中开启了多线程。。但是却只有第一个线程运行。。原因是?参考:https://www.cnpython.com/java/515558在您的例子中,它是MyRunnable的单个实例,因此当一个线程在synchronized块内执行工作时,所有其他线程将等待工作完成。因此,有效地说,一次只有一个线程在做真正的工作......
  • 遇到的问题-----网上下载的项目修改代码无效,不能相应的生成相应的页面内容
    最近帮同学改毕业设计  同学在网上下了很多  项目的构造方式真是五花八门  昨天改一个项目的时候竟然遇到很奇葩的情况,我在后台.cs改代码, 打点(.)之后没有相应的变量跳出来供你选择 而且修改.cs中的代码运行后根本没有变化 就算是你写错误的代码照样能......
  • 遇到的问题------------时间格式转化时java.text.ParseException: Unparseable date:
    -时间格式转化时java.text.ParseException:Unparseabledate:""异常把String time=2013-09-22用 privatefinalstaticSimpleDateFormatsimpleDateFormat=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");simpleDateFormat.parse(time.trim()));转化时报错java.text.......
  • 解决winform调用wpf窗体时原窗体缩小的问题
    在使用winform调用wpf窗体时,原来的winform窗体会缩小,同时分辨率会发生变化,用如下方法来解决这个问题。首先找到winform项目中的Properties ==>AssemblyInfo.cs,打开该文件,在末尾加入如下代码,之后重新运行即可。[assembly:System.Windows.Media.DisableDpiAwareness]//禁用WPF......
  • 【JVM技术指南】「GC内存诊断-故障问题排查」一文教你如何打印及分析JVM的GC日志(实战
    当我们在开发Java应用程序时,JVM的GC(垃圾回收)是一个非常重要的话题。GC的作用是回收不再使用的内存,以便程序可以继续运行。在JVM中,GC的日志记录了GC的详细信息,包括GC的类型、时间、内存使用情况等。在本文中,我们将介绍JVMGC日志的格式、含义和分析方法。JVMGC日志格式JVMGC日志的......
  • go validator验证结构体零值问题
    在使用gin框架验证前端参数时,由于golang特性,对于结构体没赋值的字段会赋予零值(int默认0,string默认""等)所以当想要验证的字段时非必填字段时,不设置required,其他的验证条件依然不能通过解决方法是在非必填字段上添加omitemptypackagemainimport( "github.com/gin-gonic/......
  • vue问题:不存在div或者多个div
    <el-radiov-model="radio"label="1">备选项</el-radio><el-radiov-model="radio"label="2">备选项</el-radio>报错:Errorscompilingtemplate:Componenttemplateshouldcontainexactlyonerootelement.......
  • Edge Drop传输缓慢的问题解决
    首先在移动端上传一张图片1.图片上传失败上传失败就没得救,网络真的不好,或者微软的服务器暂时被迫挂了。2.图片上传成功网页就会弹出消息......
  • RTSP流媒体服务器LntonNVR(源码版)视频平台通过级联到上级云服务器但视频无法播放的问题
    在经过多次的测试后,官方发布的版本可以正常级联。在实际使用过程中,有用户反馈LntonNVR通过国标GB28181协议级联到上级云服务器平台后,出现了上级平台无法播放的问题,需要我们技术人员协助进行排查。从上图我们可以看出,用户的云服务器平台显示是正常的,但是实际点击播放却存在一些问题......
  • JAVA 问题记录
     OOM(内存溢出) 先查看java进程pidjps使用jmp把内存导出查看那些对象内存占用比较高jmp-histo<pid>>/histo.txt在可以看堆内存使用情况jmp-heap<pid>>/heap.txt ......