当前位置:编程学习 > wap >>

QTreeView双击弹出QDialog的问题

QTreeView控件

CProgramTreeViewPage::CProgramTreeViewPage()
{
connect(m_pList,SIGNAL(doubleClicked(const QModelIndex &)),
            this,SLOT(OnDoubleClick(const QModelIndex&)));
}
  
  
CProgramTreeViewPage::OnDoubleClick(const QModelIndex& i_indexMode)
{
   QDialog*  dlg= new QDialog(this);
   dlg->exec();
   delete dlg;
}

弹出的对话框鼠标移动到按钮上没有hover状态(系统的关闭,最小化,最大化按钮除外)。当对话框退出。主窗口的按钮也没有了hover状态,要用鼠标点击一下才有了hover状态。如果说是失去焦点,但是快捷键还是可以用。
我已经发过这样三个帖子了,一直没有解决。我自己尝试过很多方法都不行,各位有没有相关的经验帮忙看看。我实在是没办法了。

因为Qt程序要带太多dll所以也不方便上传。
--------------------编程问答-------------------- 你是想实现鼠标停留在QTableWidgetItem上,就可以显示某些信息吗?如果是这样的话 你可以从QAbstractTableModel派生,在重新实现QVariant QAbstractItemModel::data(const QModelIndex & index, int role = Qt::DisplayRole) const;当role==Qt::Tooltip的时候返回你说需要显示的提示文字即可。当然你的flags()需要返回对应的标志位。 --------------------编程问答-------------------- 那你加了聚焦后呢? --------------------编程问答--------------------
引用 1 楼 davidsu33 的回复:
你是想实现鼠标停留在QTableWidgetItem上,就可以显示某些信息吗?如果是这样的话 你可以从QAbstractTableModel派生,在重新实现QVariant QAbstractItemModel::data(const QModelIndex & index, int role = Qt::DisplayRole) const;当role==Qt::Tooltip的时候返回你说需要显示的提示文字即可。当然你的flags()需要返回对应的标志位。

我需要的是能够双击显示一个模态对话框,但是现在双击后没有了焦点 --------------------编程问答--------------------
引用 2 楼 wangyeqiang 的回复:
那你加了聚焦后呢?

加了也不行,不知道是不是焦点问题,如果没焦点应该TAB和系统按钮(关闭,最小化)这些都没有了反应。但是这些按钮还是有反应。就是我自己的按钮没有反应。而且我按钮点击一下按钮就会生效,如果是失去焦点应该是第一下点击是无效的。 --------------------编程问答--------------------
引用 3 楼 fkeujjpdc 的回复:
Quote: 引用 1 楼 davidsu33 的回复:

你是想实现鼠标停留在QTableWidgetItem上,就可以显示某些信息吗?如果是这样的话 你可以从QAbstractTableModel派生,在重新实现QVariant QAbstractItemModel::data(const QModelIndex & index, int role = Qt::DisplayRole) const;当role==Qt::Tooltip的时候返回你说需要显示的提示文字即可。当然你的flags()需要返回对应的标志位。

我需要的是能够双击显示一个模态对话框,但是现在双击后没有了焦点

你是希望谁获得焦点 默认的话是模态对话框获取焦点的。 --------------------编程问答-------------------- 主要是现在我的程序点击后没有焦点,也不知道是不是没有焦点,就是鼠标移动到对话框上面的按钮没有hover状态
补充:移动开发 ,  Qt
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,