pyqt 實現控制項移除 pyqt刪除控制項的坑

2021-10-17 02:28:37 字數 1038 閱讀 9413

最近在使用pyqt寫個專案, 在remove控制項後, 使用findchild仍然能找到控制項, 除錯很久, 才發現是pyqt的深坑....

很無奈# 這裡是關閉qtabwidget的標籤

def close_tab(self, index=-1):

if index == -1:

index = self.tab_widget.currentindex()

if index > -1:

tab_widget_page = self.tab_widget.widget(index)

print(tab_widget_page)

if tab_widget_page:

tab_widget_page.close()

self.tab_widget.removetab(index)

# 這裡檢測是否已經開啟tab page, 如果已開啟, 那麼切換

def use(self, name):

# 關鍵就在findchild這裡, 無論removetab, tabremove, close均無效

tab_widget_page = self.tab_widget.findchild((qtgui.qwidget,), _fromutf8(name))

if tab_widget_page is none:

return false

tab_widget_page_index = self.tab_widget.indexof(tab_widget_page)

if tab_widget_page_index < 0:

return false

return self.tab_widget.setcurrentindex(tab_widget_page_index)

不得不說這是神坑, 下面來說下解決方案, 其實很簡單

import sip

# removetab後使用sip的delete

sip.delete(tab_widget_page)

此方法和c++的delete(tab_page)同理

pyqt介面控制項

建立主介面的兩種方法 1.通過繼承qtgui.qmainwindow建立類 qtgui.qmainwindow.init self 呼叫父類初始化方法 2.通過繼承qtgui.qwidget建立類 qtgui.qwidget.init self 呼叫父類初始化方法 qpushbutton 按鈕 se...

PYQT 控制項基本使用

qtgui.qcombobox控制項常用函式 additem string 新增字串項到item additems list 新增列表或元組元素到item clear 清除所有item clearedittext 清除編輯框內容 count 返回item數目 currentindex 返回當前選擇索...

PYQT5常用控制項

一 利用qt設計師上面的旋鈕和顯示框來組合,用旋鈕操作,用顯示框顯示數字 旋鈕的訊號和槽選擇如圖,函式名稱隨便寫 需要注意的地方就是,寫曹函式的時候,帶乙個引數,名稱隨意,然後賦值給顯示器lcdnumber,如下 def valuec self,aa print aa self.lcdnumber....