做Demo

本文探讨了在Qt编程中解决QTableWidget中十字形高亮、QComboBox使用、删除行items、切片显示及加减附件成对出现的问题。针对QComboBox在单元格中的应用,提出了一夫一妻制度的解决方案,即每个单元格单独创建QComboBox,并解决了坐标计算和窗口缩放带来的问题。此外,还介绍了如何有效删除QTableWidget中的行items以及确保加减附件操作成对出现的逻辑实现。
摘要由CSDN通过智能技术生成

一. 关于十字形高亮的解决方法:

使用选择视图QItemSelectionModel .

//将第row行与第column设置为高亮
void Widget::setHighlight(int row,int column)
{    
    QItemSelectionModel  *selectionModel =  tableWidget->selectionModel();
    QModelIndex top = tableWidget->model()->index(row, column, QModelIndex());
    QModelIndex bottom = tableWidget->model()->index(row, column, QModelIndex());
    QItemSelection selection(top, bottom);
    selectionModel->select(selection, QItemSelectionModel::Select|
                           QItemSelectionModel::Rows|QItemSelectionModel::Columns);
}

其中

QItemSelectionModel::select(const QItemSelection &selection, QItemSelectionModel::SelectionFlags command)

Flags可以进行位操作。

参考资料:http://www.aichengxu.com/jiagou/6197787.htm

二. 关于将QtableWidget 中QComboBox的问题。

一开始自己的想法跑偏了(每点击单元格则生成QComboBox,第二次点击则将第一次的那个隐藏掉),如果这样的话,一个8行4列的table 最多需要实例化32个QComboBox,内存的问题就很严重了,而且怎么隐藏掉第一个也不好处理。(隐藏掉其实蛮好处理的,用成员

Gradio是一个简单易用的库,用于创建交互式的API接口(web应用)。要使用Gradio制作类似这样的demo,你需要完成以下几个步骤: 1. **安装依赖**: 首先确保已经安装了`gradio`, `requests` (如果需要发送HTTP请求) 和 `transformers` (如果涉及到自然语言处理模型)。可以通过pip安装: ``` pip install gradio requests transformers ``` 2. **准备模型和处理函数**: - 如果你有一个训练好的模型,比如基于BERT的文本相似度模型,确保它可以接受查询字符串和数量N作为输入,并返回相关的N个句子。 - 创建一个函数,该函数接收`query`和`N`作为参数,调用模型并处理结果。 3. **定义Gradio界面**: 使用Gradio的`Interface`类定义你的界面。这里是一个基础模板: ```python import gradio as gr from transformers import pipeline # 假设model_name_or_path是你的模型路径或名称 similarity_model = pipeline("text-similarity", model=model_name_or_path) def demo(query, N): similar_sentences = similarity_model(query, num_return_sequences=N) return similar_sentences # 创建Gradio界面 app = gr.Interface(demo, inputs=[gr.inputs.Textbox(label="Query"), gr.inputs.Number(label="Number of Similar Sentences")], outputs=gr.outputs.TextboxList(num_rows=N), title="Sentence Similarity Demo") ``` 注意,`outputs=gr.outputs.TextboxList(num_rows=N)`表示输出会被显示为一个列表,每个元素是一行文本。 4. **运行应用**: 最后,启动Gradio应用: ```python app.launch() ``` 5. **部署到在线**: 如果你想让别人可以在浏览器上直接访问这个应用,你可以选择将其部署到Gradio的服务器 (`app.deploy()`) 或者本地服务器 (`app.run()`),但这通常需要额外设置和权限。 **相关问题**: 1. 如何在Gradio中添加自定义UI样式? 2. 我的模型不是预训练的,需要自己实现相似度计算怎么办? 3. 如何处理用户请求过大数据量的问题? 4. Gradio支持哪些模型类型?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值