Qt QTablewidget 不使用代理的情况加 添加控件(下拉框,按钮,,,,),
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Qt QTablewidget 不使用代理的情况加 添加控件(下拉框,按钮,,,,),,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1404字,纯文字阅读大概需要3分钟。
内容图文
![Qt QTablewidget 不使用代理的情况加 添加控件(下拉框,按钮,,,,),](/upload/InfoBanner/zyjiaocheng/1000/6c1a826599714779b5ef17a90703e0a2.jpg)
前言
一般情况下tablewidget 添加控件的时候, 合理的情况本应该是使用代理,更高效的一点是 使用 tableview 和代理。 但是有时为了开发快,以及开发简易程度 就使用setCellWidget 来快速开发:(极不推荐这种,后期业务逻辑写起来很淡腾)
void setCellWidget(int row, int column, QWidget *widget);`
案例
{
// 为了combox 居中又不得不用QWidegt 嵌套起来(后期数据多了,刷新数据很慢的。)
QWidget *Widget = new QWidget();
QHBoxLayout *vLayout = new QHBoxLayout();
QComboBox *comBox = new QComboBox();
comBox->addItems({"1","2"});
vLayout->addWidget(comBox);
comBox->setCurrentIndex(comboxindex);
//Widget中添加布局
Widget->setLayout(vLayout);
Widget->setStyleSheet({"background: #2F3133;"});
//表格中添加Widget
ui->tableWidget->setCellWidget(currentrow, 7, (QWidget*)Widget);```
//触发combox 必须写对应的曹函数
connect(comBox, SIGNAL(currentIndexChanged(int)),this, SLOT(slotComBox(int)));
}
void XXXXX::slotComBox(int index)
{
QComboBox * comboBox = dynamic_cast<QComboBox *>(sender());
if(comboBox == nullptr) return;
// 获取索引 注意 comboBox->parent() 而不是 combox
// 当单独一个控件的时候用combox,事例中为了居中引入了QWidget 嵌套combox
QModelIndex modelindex = ui->tableWidget->indexAt(dynamic_cast<QWidget *>(comboBox->parent())->pos());
int row = modelindex.row();
int column = modelindex.column();
//XXXXXX 具体逻辑
}
意见
能用代理加载控件,最好用代理, 别用这种。
前期开发界面确实很快, 但后期写业务, 尤其是多个控件有联动关系的时候, 很麻烦
内容总结
以上是互联网集市为您收集整理的Qt QTablewidget 不使用代理的情况加 添加控件(下拉框,按钮,,,,),全部内容,希望文章能够帮你解决Qt QTablewidget 不使用代理的情况加 添加控件(下拉框,按钮,,,,),所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。