c++ - Qt-帮助创建 Qt Designer 自定义小部件插件,如 QTabWidget
问题描述
我创建了一个 Qt Designer 自定义小部件插件,其中包含一个QListView
和一个QStackedWidget
. 当我在 Qt creator 中安装插件时,我无法QListView
通过点击访问 's 项目,即使我将 clicked 信号与插槽连接。我的问题是,我需要在 Qt 设计器中执行该插槽,因为我希望小部件的行为就像QTabWidget
,但插入选项卡,我想使用列表在页面之间导航。但是在我的情况下,当我点击其中一个项目时,完整的小部件会获得点击,而不仅仅是列表中的项目,所以我不知道是否有任何可能使这成为可能。我希望我能很好地解释我的观点,谢谢。
自定义小部件类的构造函数:
MultiPageWidget::MultiPageWidget(QWidget *parent)
: QWidget(parent)
, stackWidget(new QStackedWidget)
, listView (new QListView)
, listModel (new ListModel)
{
listView->setObjectName(QStringLiteral("__qt__passive_listView"));
listView->setEditTriggers(QAbstractItemView::NoEditTriggers);
listView->setModel(listModel);
connect(listView, SIGNAL(clicked(QModelIndex)), this, SLOT(setCurrentIndex(QModelIndex)));
QHBoxLayout *layout = new QHBoxLayout(this);
layout->addWidget(listView,1);
layout->addWidget(stackWidget,2);
//listView->setFocus();
}
domXml() 方法 int 插件的类:
QString MultiPageWidgetPlugin::domXml() const
{
return QLatin1String("
<ui language="c++">
<widget class="MultiPageWidget" name="multipagewidget">
<widget class="QWidget" name="page" />
</widget>
<customwidgets>
<customwidget>
<class>MultiPageWidget</class>
<extends>QWidget</extends>
<addpagemethod>addPage</addpagemethod>
</customwidget>
</customwidgets>
</ui>"
);
}
解决方案
推荐阅读
- flutter - Dart:如何删除每个键具有多个值的映射的特定值
- java - 从语句块获取结果集
- kubectl - 删除包含无效字符的命名空间标签
- python - python中的计数表或频率表
- r - 使用 geom_sf 在 ggplot 中设置边界厚度和颜色主题
- excel - 如何在 Excel 的公式中只定义一次重复数组?
- html - 将主题和消息从 HTML 表单格式化为 mailto
- android - 华为地图套件,有没有办法在标记集群上定义 onClick 事件?
- python - 在 Python 中动态调用函数
- php - 如何用其他形式实现 dropzone 并将 post_id 插入图像表?