- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我将纯虚方法 QStyledItemDelegate::paint
定义为:
void FooViewDelegate::paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
bool selected = option.state & QStyle::State_Selected;
// ...
// drawing code
}
但我不知道如何知道绘图项是当前的还是不存在的(与 QListView::currentIndex()
中的项目相同)。
最佳答案
Qt MVC不是为此类用例设计的,因为从理论上讲,委托(delegate)不应该知道您正在使用什么 View (它可能是 QListView
或 QTableView
)。
因此,一个“好方法”是将此信息保存在您的委托(delegate)中(因为模型可能会被多个 View 使用)。 Fox 示例(伪代码):
class FooViewDelegate : ...
{
private:
QModelIndex _currentIndex;
void connectToView( QAbstractItemView *view )
{
connect( view, &QAbstractItemView::currentChanged, this, &FooViewDelegate ::onCurrentChanged );
}
void onCurrentChanged( const QModelIndex& current, const QModelIndex& prev )
{
_currentIndex = current;
}
public:
void paint( QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const
{
bool selected = index == _currentIndex;
// ...
// drawing code
}
}
关于c++ - 如何在 QStyledItemDelegate::paint() 中获取 QListView 的 currentIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38612462/
我正在创建一个带有 Scaffold 的应用程序,其中包含: 一个 FutureBuilder在创建 PageView 的正文中加载数据时作为其子项。 一个 BottomNavigationBar与
我是 C++ 的新手,我刚开始将一个最初在 python/Qt 中的程序移植到 C++/Qt 为了利用我可以嵌入到我的程序中的更好的终端小部件。现在我有点卡住了,我正在尝试设置如果从下拉框中选择不同的
有一个包含 5 个选项的下拉菜单。当前,选项 2 被选中。用户现在选择选项 4。onchange 事件被触发,该事件被 JS 函数捕获,该函数在选择时监听 onchange。 在 JS 函数中,我可以
如何将 currentIndex 的值更改为始终等于 0。 (CRANK1 + CRANK2) + (DRANK1 + DRANK2) 的价格应为 (0 + 选择的金额),但其相加为 (选择的金额 +
我的 Flutter 应用程序有一个底部导航栏小部件。在点击特定项目时,它会导航到另一个屏幕。但是,我不知道在这种情况下如何更新当前索引,以便突出显示选定的选项卡。这是我的代码: Bo
我有一个 QML ListView,其中委托(delegate)从另一个文件加载其组件。单击委托(delegate)项目时,我想更新 ListView。 CurrentIndex 并突出显示所选项目。
我有一个 QTableView我覆盖了 keyPressEvent方法例如当用户按下右下角的tab键时,会在底层(pandas)模型中追加一个新行。完成后,我希望当前索引位于新的右下角。这是一个分类的
我已经阅读了一些有关如何为 QComboBox 小部件定义自定义模型的示例。 这是我定义模型的方式: class LevelListModel(QAbstractListModel): def
我将纯虚方法 QStyledItemDelegate::paint 定义为: void FooViewDelegate::paint( QPainter* painter, const QStyleO
我一直在处理 PageView,我的页面 View 工作正常。但是自从我使用了一个dots_indicator 0.0.4因为它代表我现在所在的位置。我对是否该怎么做感到困惑。我的指标显示正常,但问题
我正在尝试创建一个 SwipeView,其中第一页的 interactive 属性为 false,而其他页面则启用它。我想要达到的效果是让主页链接到其他页面,但其他页面只能返回到主页(如 iOS 设置
我想将 StatelessWidget 与 BottomNavigationBar 一起使用,我将从 BLOC 控制它。我可以将 Scaffold 的 body 和 BottomNavigationB
我是一名优秀的程序员,十分优秀!