ROS放弃指南9:ROS-QT

本文详细介绍了在ROS环境中使用QT进行界面开发的配置步骤和常用语法,包括控件与状态的映射、QTreeWidget的使用技巧、查找与编辑item的方法、以及自定义排序和信号处理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装配置

一些语法

//存放rviz treewidget当前显示的控件及控件的父亲的地址
QMap <QWidget*,QTreeWidgetItem *> widget_to_parentItem_map;
//存放状态栏的对应关系 display名 状态item
QMap <QString,QTreeWidgetItem > tree_rviz_stues;
//存放display的当前值 item名,参数名称和值
QMap <QTreeWidgetItem
,QMap<QString,QString>> tree_rviz_values;

QTreeWidgetItem::addChild(QTreeWidgetItem*) //用于根节点添加子节点

QTreeWidget::setColumnCount ; //用于设置表中的列的列数目,在表头中会有对应的显示,

QTreeWidget::setHeaderHidden(); //隐藏表头

QTreeWidgetItem::setSortingEnabled(bool) //可以用来设置是否可以排序,当为true时候,点击表头,会自动排序

openPersistentEditor和closePersistentEditor //用来控制某一item是否可以编辑

QTreeWidgetItem * QTreeWidget::currentItem () //const返回当前的item指针,

int QTreeWidget::currentColumn () // const放回当前item的列编号

QTreeWidgetItem * QTreeWidget::itemAt ( int x, int y ) const返回给定的位置的item指针

QTreeWidgetItem * QTreeWidget::itemBelow ( const QTreeWidgetItem * item ) const //返回指定的item下面item

QTreeWidgetItem * QTreeWidget::itemAbove ( const QTreeWidgetItem * item ) const //返回指定的item上面item

查找item时候,通QListWidget和QTableWidget一样,同样有多个查找匹配模式

QList<QTreeWidgetItem *> QTreeWidget::findItems ( const QString & text, Qt::MatchFlags flags, int column = 0 ) const

//显示隐藏列:

setSectionHidden(int, bool);isSectionHidden(int);

增加删除顶层用:

addTopLevelItem(QTreeWidgetItem*);

addTopLevelItem(QTreeWidgetItem*);

takeTopLeveltem(int);

topLevelItem(int); //返回

topLevelItemCount();

增加删除子层:

addChild(QTreeWidgetItem*);

addChildren(const QList<QTreeWidgetItem*>&);

takeChild(int);

takeChildren();

child(int) //返回

childCount();

//排序

treeWidget->setSortingEnabled(true);

treeWidget->header()->setSortIndicatorShown(true);

treeWidget->header()->setSortIndicator(0, Qt::AscendingOrder);

//要自定义就用信号

connect( treeWidget->header(), SIGNAL( sectionClicked(int) ), this, SLOT( sectionClickedSlot(int) ) );

添加表头的两种方法

方法一:

QStringList header;

header<<“ECJTU”<<“CERT”;

treewidget->setHeaderLabels(header); //设置表头

方法二:

QStringList header;

header<<“ECJTU”<<“CERT”;

QTreeWidgetItem head=new QTreeWidgetItem((QTreeWidget)0,header);

treewidget->setHeaderItem(head);

//this->setMouseTracking(true);

this->setRootIsDecorated(false);

this->setSelectionMode(QAbstractItemView::ExtendedSelection);

this->setStyleSheet(“QTreeWidget::item{height:25px}”); //设置行宽, 我也找不到提供的接口 setStyleSheet很强大建议看

this->setColumnWidth(0, 100); //设置列宽

this->setColumnCount(2);

QStringList lists;

lists << “NO” << “name”;

this->setHeaderLabels(lists);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值