QTableWidget中的QCheckBox使用

2021-06-21 06:16:18 字數 994 閱讀 5470

在qtablewidget**中顯示乙個qcheckbox:

一:最先想到的是void qtablewidget::setcellwidget(int row, int column, qwidget *widget),事實證明使用這個函式正常顯示checkbox沒有問題,但是卻無法通過qtablewidget物件去讀取這個checkbox的狀態。情況如下:

1.從qtablewidget取得item的指標的函式只有:qtableitem  *item(int row, int column) const。注意這個函式返回的是qtableitem *,而不是你所設定的物件型別。那就強制型別轉換。

2.(qcheckbox *)... 事實證明qt是不支援這種轉換的。注意:(qtablewidgetitem *)可強制轉換為(qlabel *)。

因此在**中如果想做出單選框的狀態,不要用qcheckbox嵌入裡面,這樣會出現許多未知的bug。

二:qtablewidgetitem這個物件有checkstate屬性,既能顯示qcheckbox,又能讀取狀態。

qtablewidget *tablewidget = new qtablewidget;

qtablewidgetitem *checkbox = new qtablewidgetitem();

checkbox->setcheckstate(qt::checked);

tablewidget ->setitem(2, 2, checkbox);

以上**就在tablewidget中顯示乙個qcheckbox。但是如何判斷核取方塊是否被選中呢,方法是利用qtablewidget::cellchanged()函式,檢查單元格內容的變化,然後連線此訊號,在槽函式中檢測checkbox的狀態。

connect(tablewidget, signal(cellchanged(int,int)), this, slot(changetest(int, int)));

void changetest(int row, int col)

PyQt5中QTableWidget的使用方法

為了在螢幕上顯示更多的控制項,我們使用qwidget來作為乙個容器,下面列出了乙個方法表 qwidget 建立用於顯示控制項的視窗 addtab self,qwidget,str qwiget 需要新增的控制項 str tab標題 settabtext self,int,str int 控制項序號 ...

django中Q的用法

from django.db.models import q student.objects.filter q age gt 18 q age lt 10 上面為查詢年齡大於18或者小於10歲的學生我們如果想查詢非得時候其實可以使用exclude,比如下面 student.objects.exclu...

QTableWidget新增右鍵選單的詳細過程

包含標頭檔案 include include在類定義中增加乙個qmenu物件指標 qmenu table widget menu 在父窗體建構函式中允許qtablewidget接收qwidget customcontextmenurequested 訊號。ui tablewidget setcont...