参考:https://www.cnblogs.com/zhuluqing/p/9034696.html
列表控件的设计思路:
只有QListWidgetItem自己能改变自己的状态(如checked,selected,颜色等)状态,QListWidget是无法改变其项的状态的。
列表控件是被动接受子项的状态改变,然后根据状态改变调用它的信号函数。
该控件只能控制当前行,并不能控制行的状态(如checked,selected),行的状态是由QListWidgetItem来决定的。
setCurrentRow(index)用来表示你开始要选中哪一行
currentRow()表示当前位于哪一行
信号:
itemPressed()表示当某行被按下后发出该信号
itemClicked()表示当某行被点击后发出该信号
connect(m_listwidget,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(ListRowNum())); //槽函数不能有参数
void VideoDialog::ListRowNum()
{
QString str = m_listwidget->item(0)->text();
qDebug() << "list item::" << m_listwidget->currentItem()->text(); //鼠标选中某行的内容
qDebug() << m_listwidget->currentRow(); //鼠标选中某一行
}
QListWidget 有个信号,SelectItemChanged 只要改变了当前的选择,就会发送这个信号,可以用这个信号来触发自己的槽。
connect(ui->listWidget,SIGNAL(itemSelectionChanged()),this,SLOT(lineeditEnable()))
然后在lineeditEnable槽里,就可以添加我们的代码,来判断是哪个Item, QListWidget可以用currentItem来获取当前的Item
返回的是一个QListWidgetItem类型,QListWidgetItem 用text()可以获取Item的字符串,QString类型
这样就可以找出Item的名字了。
(参考:http://blog.sina.com.cn/s/blog_830cba8a0100xrs1.html)