从QListWidget获取小部件
get widget from QListWidget
我有一个名为VideoWidget
的自定义QWidget类,用于填充QListWidget ui->myList
。双击列表中的任何一项都会得到它的VideoWidget
。
connect(ui->myList,SIGNAL(doubleClicked(QModelIndex)),this,SLOT(playClip(QModelIndex)));
void MainWindow::playClip(QModelIndex index){
QListWidgetItem* item = ui->myList->itemAt(0,index.row());
VideoWidget widget = <dynamic_cast>(VideoWidget*)( ui->myList->itemWidget(item) );
cout << "custom widget data" << widget.getMyData() << endl;
}
它不允许我编译VideoWidget widget = <dynamic_cast>(VideoWidget*)( ui->myList->itemWidget(item) );
行。我不确定我在这里错过了什么。
-
dynamic_cast
的语法是VideoWidget *widget = dynamic_cast<VideoWidget*>(ui->myList->itemWidget(item));
-
您可能应该使用
qobject_cast
,因为这是QObject:VideoWidget *widget = qobject_cast<VideoWidget*>(ui->myList->itemWidget(item));
-
在强制转换之后添加代码,至少为
Q_ASSERT(widget);
,以验证强制转换是否成功(如果强制转换失败,则返回nullptr
)。
您的行没有意义。<dynamic_cast>
不是有效的C++。它是一个无效的名称,不能是模板参数,因为在它之前没有期望函数/类的模板
它应该是C++中的dynamic_cast<VideoWidget*> (ui->myList->itemWidget(item) )
但是,Qt定义了自己的强制转换函数,因此应该使用qobject_cast<VideoWidget*>(ui->myList->itemWidget(item) )
相关文章:
- 打印可以重复以获取原始字符串的最小字符串
- 遍历最小堆时获取垃圾值
- 如何获取进程内存的最小值和最大值?(C++)
- 在泰勒展开中获取 inf 对于 e^x,但仅适用于小误差边界
- 尝试获取数组中的最小元素时崩溃
- 如何在小部件大小更改时获取信号
- 算法,用于查找获取排序列表所需的最小移动元素到结束步骤
- 通过字符串获取小部件
- 仅从qtextedit小部件中获取可见文本
- 获取最大值、平均值和最小值
- 小啰嗦。获取节点(或"raw content")的全文?
- 获取与特定模式距离最小的矢量的元素位置
- 如何获取队列的最小值和最大值
- 如何在不使用递归的情况下获取二叉树的最小高度
- 通过小部件获取顶级窗口
- 如何获取避免滚动条的树视图控件的最小大小
- C++ 创建小部件数组
- 在C++中获取大于或等于一个双精度的最小浮点值(以及小于或等于一的最大浮点值)
- 从QListWidget中的小部件获取变量
- 无法从我的 Add 函数之外的链表头部获取数据