You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Quasar框架的q-select组件选项添加标题?

解决方案

Quasar的q-select组件本身没有内置的选项标题配置,但可以通过自定义插槽实现需求,下面分两种场景给出具体实现方式:

单个选项添加独立标题

如果需要给每个选项单独设置标题,可使用option插槽自定义选项结构,在选项内容上方添加标题元素:

<q-select
  v-model="selected"
  :options="options"
  label="带独立标题的选择器"
>
  <!-- 自定义选项模板 -->
  <template v-slot:option="scope">
    <div class="q-pa-xs">
      <!-- 标题部分 -->
      <div class="text-subtitle2 font-weight-bold">{{ scope.opt.title }}</div>
      <!-- 选项内容 -->
      <div class="text-body1">{{ scope.opt.label }}</div>
    </div>
  </template>
</q-select>

<script setup>
import { ref } from 'vue'

const selected = ref(null)
// 自定义选项数据,新增title字段存储标题
const options = ref([
  {
    label: '基础功能配置',
    value: 'config-basic',
    title: '系统设置'
  },
  {
    label: '用户权限管理',
    value: 'auth-user',
    title: '权限模块'
  }
])
</script>

分组选项添加组标题

如果需要给一组选项添加统一标题,可使用group-options属性配合group插槽实现分组标题:

<q-select
  v-model="selectedGroup"
  :group-options="groupedOptions"
  label="分组带标题的选择器"
>
  <!-- 自定义分组标题模板 -->
  <template v-slot:group="scope">
    <div class="text-subtitle1 font-weight-bold q-py-xs q-px-sm text-primary">
      {{ scope.group.label }}
    </div>
  </template>
  <!-- 自定义选项模板 -->
  <template v-slot:option="scope">
    <div class="q-pa-xs">{{ scope.opt.label }}</div>
  </template>
</q-select>

<script setup>
import { ref } from 'vue'

const selectedGroup = ref(null)
// 分组格式的选项数据
const groupedOptions = ref([
  {
    label: '系统设置',
    options: [
      { label: '基础配置', value: 'sys-basic' },
      { label: '日志管理', value: 'sys-log' }
    ]
  },
  {
    label: '权限模块',
    options: [
      { label: '用户管理', value: 'auth-user' },
      { label: '角色配置', value: 'auth-role' }
    ]
  }
])
</script>

补充说明

你可以根据需求调整标题的样式(颜色、字体大小、边距等),Quasar的内置CSS类(如text-subtitle2、font-weight-bold)可快速实现统一的UI风格。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:10:36