RT,
QListWidget * listWidget = new QListWidget(this);
listWidget->setMouseTracking(true);
connect( listWidget, SIGNAL(itemEntered(QListWidgetItem*)), this, SLOT(slotOnItemEntered(QListWidgetItem*)) ) ;
這是大體代碼, 在slotOnItemEntered(QListWidgetItem*)中設斷點, 滑鼠劃過item時, 沒有進入該函式, 具體原因不清楚, 故發此貼求教。
ps: itemClicked(QListWidgetItem*), itemPressed(QListWidgetItem*) 是能收到的。
this 為父類為QWidget的視窗, 且設定了無邊框, 和無邊框滑鼠移動
環境: IDE - vs2013 Professional, version 12.0.2
Qt - 5.5.1 x86
uj5u.com熱心網友回復:
void QListWidget::itemEntered ( QListWidgetItem * item ) [signal]This signal is emitted when the mouse cursor enters an item. The item is the item entered. This signal is only emitted when mouseTracking is turned on, or when a mouse button is pressed while moving into an item.
出這個信號是當滑鼠游標進入一個專案。專案是專案進入。這個信號只發出mouseTracking打開時,或者當一個滑鼠按鈕被按下,進入一個專案。
翻譯軟體翻譯的 勉強看吧 還有你發錯地方了 這里是MFC 你應該發qt去
uj5u.com熱心網友回復:
應該是你的信號弄錯了吧
uj5u.com熱心網友回復:
謝謝 官方檔案我看過 但是照做之后并沒有起到效果 另外 我沒找到Qt欄啊
uj5u.com熱心網友回復:
謝謝 官方檔案我看過 但是照做之后并沒有起到效果 另外 我沒找到Qt欄啊
uj5u.com熱心網友回復:
親 我這測驗正常啊#include "qlistwidgettest.h"
#include <QListWidget>
#include <QDebug>
QListWidgetTest::QListWidgetTest(QWidget *parent, Qt::WFlags flags)
: QWidget(parent, flags)
{
ui.setupUi(this);
ui.m_listWidget->setMouseTracking(true);
connect( ui.m_listWidget, SIGNAL(itemEntered(QListWidgetItem*)), this, SLOT(slotOnItemEntered(QListWidgetItem*)) ) ;
QListWidgetItem* lst1 = new QListWidgetItem("data", ui.m_listWidget);
QListWidgetItem* lst2 = new QListWidgetItem("decision", ui.m_listWidget);
QListWidgetItem* lst3 = new QListWidgetItem("document", ui.m_listWidget);
QListWidgetItem* lst4 = new QListWidgetItem("process", ui.m_listWidget);
QListWidgetItem* lst5 = new QListWidgetItem("printer", ui.m_listWidget);
ui.m_listWidget->insertItem(1, lst1);
ui.m_listWidget->insertItem(2, lst2);
ui.m_listWidget->insertItem(3, lst3);
ui.m_listWidget->insertItem(4, lst4);
ui.m_listWidget->insertItem(5, lst5);
ui.m_listWidget->show();
}
QListWidgetTest::~QListWidgetTest()
{
}
void QListWidgetTest::slotOnItemEntered(QListWidgetItem* p)
{
qDebug()<< "111";
}
uj5u.com熱心網友回復:
好吧。 這個問題最終解決了。是通過一個過濾訊息的函式 忘了叫啥。...uj5u.com熱心網友回復:
itemEntered這個是滑鼠按下的信號吧,你關聯錯了吧轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/85575.html
標籤:界面
上一篇:在執行緒里呼叫put_Item函式給EXCEL寫資料,會產生中斷,如果put_Item放到執行緒外面使用就可以了,咋回事?
