一、要想長按刪除qlistwidget的item,必須重寫滑鼠事件,所以需要繼承qlistwidget重寫自己的mylistwidget。分享一下我寫的類://.h檔案
#ifndef
cjwlistwidget_h#define
cjwlistwidget_h
#include
#include
#include
#include
#include
#include
#include
classcjwlistwidget
:public
qlistwidget
;
#endif//cjwlistwidget_h
//.cpp檔案
#include"cjwlistwidget.h"
#include
cjwlistwidget::cjwlistwidget(qwidget
*parent):
qlistwidget(parent)
voidcjwlistwidget::mousepressevent(
qmouseevent
*event)
}
voidcjwlistwidget::mousereleaseevent(
qmouseevent
*e)
}
}
voidcjwlistwidget::deleteitemat()
}
需要注意的有三點:
1、刪除item需要使用函式takeitem而不是removeitemwidget。
2、要想刪除選中的項,由於qt4中取消了selecteditem()函式,所以需要使用
qlist
<
qlistwidgetitem
*>
list=
this
->selecteditems();
3、qlistwidget的item編號是從0開始的,即第一項的row是0。二、刪除qlistwidget裡的某項內容時,先把其位置上的widget從qlistwidget拿掉(脫離關係),如果不再需要此widget的話,可刪除它
qlistwidgetitem *item = listwidgetmember->takeitem(listwidgetmember->currentrow());
delete item;
三、qlist < qlistwidgetitem * > list =listwidget1->finditems(pstr,qt::matchcasesensitive);
qlistwidgetitem* sel = list[0];
r = listwidget1->row(sel);
qlistwidgetitem *item = listwidget1->takeitem(r);
listwidget1->removeitemwidget(item);
delete item;
Qt 實現listWidget中項的檢索
寫了乙個槽函式,實現這樣的功能,如圖 上面是乙個 lineedit,下面是乙個listwidget。當我在lineedit輸入文字時,在listwidget中能根據輸入檢索到相關項,並顯示。剛開始的時候,我是這樣做的 這樣做的結果就是程式執行到 ui listwidget additem item ...
在ListWidget中新增自定義的Item
之前看過很多在listwidget中新增item的方法,但是大部分都沒能解決我的問題。昨天把這個問題解決了,想著把它記下來。留個紀念吧。先上乙個圖例。就像這一樣。這個是純 實現。以下是純 include dialog.h include ui dialog.h include include dia...
陣列中刪數1
input 多組測試,每組第一行輸入1個整數n n 20 然後是n個整數 第二行輸入1個整數m output 刪除在第一行的n個整數中第一次出現數字m並刪除,然後按照順序輸出剩下的數,上面是我自己寫的,想法是把要被刪去的數的後面所有位向前移一位 下面的思路是在輸出時直接跳過這個數不輸出 includ...