QT中設定QTreeWidget某一列可編輯

2021-06-19 06:33:52 字數 1728 閱讀 3070

大家都知道,在qt中, qtreewidget都是qtreewidgetitem的形式來組織的,也就是說如果單獨設定屬性的話,可以使得某一行可以編輯或者不可編輯

qtreewidgetitem*

->setflags(qt::itemisenabled

|qt::itemisselectable

|qt::itemiseditable);//

設定某一行的內容可編輯

這裡給大家介紹個方法來使某一列僅可編輯

qtreewidget::openpersistenteditor ( qtreewidgetitem * item, int column = 0 )可用來開啟某一行的某一列的編輯狀態

qtreewidget::closepersistenteditor ( qtreewidgetitem * item, int column = 0 )則可以用來關閉某一行某一列的始終編輯狀態

在滑鼠雙擊樹控制項的某個部分的時候,樹控制項會發出乙個訊息itemdoubleclicked ( qtreewidgetitem * item, int column ),如果我們捕捉這個訊息 ,並判斷column的值,就可以使得某一列可以編輯,而其它列不可編輯。但是由於openpersistenteditor 會使得這個單元格始終可編輯,及時滑鼠已經沒有選中該單元格了,所以,我們還需要在使用者編輯完當前單元格時,呼叫closepersistenteditor來關閉單元格始終可以編輯狀態,可以在itemselectionchanged訊號的訊號處理函式處理(就是選中不修改值的,也會發出此訊號)。

關鍵**部分:

在建構函式中:

connect(ui->feederset_treewidget,signal(itemdoubleclicked(qtreewidgetitem*,int)),

this,slot(openeditor(qtreewidgetitem*,int)));

connect(ui->feederset_treewidget,signal(itemselectionchanged()),

this,slot(closeeditor()));

ui->feederset_treewidget->setstylesheet("qtreewidget::item");//

設定行距大小,可以防止編譯修改完成以後,行距會發生變化

/* 在兩個槽處理函式中 */
// 設定除了第一列和第五列之外的列,雙擊的可以修改
void

xdlconfig::openeditor(qtreewidgetitem

*item,

intcolumn)

}
// 當修改完以後或者選中其他列的時候,關閉可編輯狀態
void

xdlconfig::closeeditor()

}

qt中設定選單高度

如題所示,我建立乙個選單,如下,但是選單項的高度太小了,popupmenu new qmenu this qaction action1 new qaction tr new1 this qaction action2 new qaction tr new2 this qaction action3...

qt中設定窗體大小

在我們的程式設計中,我們有時候會想讓我們的程式窗體固定大小,而該大小是我們在編輯時的大小。經過我的摸索,和查閱資料。找到了乙個方法。其實也很簡單。其實也就是先找到該窗體的物理大小。然後設定固定窗體的大小即可,核心 如下 logindialog logindialog qwidget parent q...

qt中的qmake命令設定

之前安裝qt 4.7.2,由於習慣了在命令列下編譯原始檔,我在網上搜了一下關於qt環境變數的配置方法,配置很簡單,在 etc profile檔案裡新增下面幾行語句 export qtdir opt qtsdk 2010.05 qt 這個路徑根據自己安裝的位置進行配置 export ld librar...