You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Qt Designer中设置复选框列表及菜单单选自动切换功能?

嘿,这两个Qt Designer的配置问题我熟得很,给你一步步讲清楚:

1. 在Qt Designer中设置复选框列表

这里有两种常用方案,看你的需求选:

方案一:固定数量复选框(用QGroupBox+QCheckBox)

  • 从左侧部件面板拖一个QGroupBox到窗口,给它设置一个清晰的标题(比如“待办事项”)
  • 接着拖若干个QCheckBox到这个分组框里,为了排列整齐,你可以选中所有复选框和分组框,右键选择“布局”→“垂直布局”(或网格布局)
  • 每个复选框都能在右侧属性编辑器里修改text设置显示文本,还能调整checked属性设置默认是否勾选

方案二:动态复选列表(用QListWidget)

如果你需要后续能动态添加/删除复选项,推荐用这个:

  • 拖一个QListWidget到窗口
  • 右键点击它选择“编辑项目”,在弹出的对话框里添加你需要的列表项
  • 选中每个列表项,在右侧的项属性面板里,找到flags并勾选ItemIsUserCheckable,再设置checkStateUnchecked(默认未勾选)或Checked(默认勾选)
  • 这样运行后,每个列表项都会自带复选框,用户可以随意勾选多个
2. 配置单选式菜单选项(自动互斥勾选)

这个完全不用自己写互斥代码,Qt Designer自带的动作组就能搞定:

  • 先打开动作编辑器:点击顶部菜单“视图”→“动作编辑器”(如果没显示的话)
  • 在动作编辑器里点击“新建动作”,创建对应选项的动作,比如分别命名为actZoom50actZoom100actZoom150,把它们的text改成“50%”、“100%”、“150%”,记得把默认选中的那个动作的checked设为true
  • 右键动作编辑器的空白处,选择“新建动作组”,创建一个动作组(比如grpZoom),选中这个组,在右侧属性里把exclusive设为true(这是实现互斥的关键)
  • 把刚才创建的三个缩放动作都添加到这个动作组里:可以直接拖动作到组里,或者右键动作→“添加到动作组”选择新建的组
  • 最后把动作添加到菜单:拖一个QMenuBar到窗口,创建一个菜单(比如“视图”),然后把动作编辑器里的三个缩放动作拖到这个菜单下
  • 这样配置后,用户点击任意一个缩放选项,之前选中的选项会自动取消勾选,所有逻辑都是Qt自动处理的,生成的代码里已经包含了这部分逻辑

内容的提问来源于stack exchange,提问作者Alexis Wilke

火山引擎 最新活动