python 沒有控制項 PyQt自定義控制項未顯示

2021-10-11 05:15:25 字數 1934 閱讀 6278

我是pyqt的新手。在

我試圖在乙個類中放入乙個qtableview,這樣我就可以定義它在類中的行為,而不必將它與所有其他**混合,但是當我這樣做時,它就不會顯示出來了。在

這是我學習的準則。它是從[edit table in pyqt using qabstracttablemodel]借來的。稍微重新適應它以與qt5一起使用,並在類中移動了qtableviewimport sys

from pyqt5 import qtgui, qtcore

from pyqt5.qtgui import *

from pyqt5.qtcore import *

# données à représenter

my_array = [['00','01','02'],

['10','11','12'],

['20','21','22']]

def main():

w = mywindow()

w.show()

# création de la vue et du conteneur

class mywindow(qwidget):

def __init__(self, *args):

qwidget.__init__(self, *args)

tablemodel = mytablemodel(my_array, self)

table = table(tablemodel)

layout = qvboxlayout(self)

layout.addwidget(table)

self.setlayout(layout)

# création du modèle

class table(qwidget):

def __init__(self, model):

super().__init__()

self.model = model

self.initui()

def initui(self):

self.setminimumsize(300,300)

self.view = qtableview()

self.view.setmodel(self.model)

class mytablemodel(qabstracttablemodel):

def __init__(self, datain, parent = none, *args):

qabstracttablemodel.__init__(self, parent, *args)

self.arraydata = datain

def rowcount(self, parent):

return len(self.arraydata)

def columncount(self, parent):

return len(self.arraydata[0])

def data(self, index, role):

if not index.isvalid():

return none

elif role != qt.displayrole:

return none

return (self.arraydata[index.row()][index.column()])

def setdata(self, index, value):

self.arraydata[index.row()][index.column()] = value

return true

def flags(self, index):

return qt.itemiseditable

if __name__ == "__main__":

main()

如果我刪除類並使用

^$**顯示沒有問題。在

我錯過了什麼?在

pyqt介面控制項

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

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

最近在使用pyqt寫個專案,在remove控制項後,使用findchild仍然能找到控制項,除錯很久,才發現是pyqt的深坑.很無奈 這裡是關閉qtabwidget的標籤 def close tab self,index 1 if index 1 index self.tab widget.curr...

python 為什麼沒有自增自減符

b 5 a 5 id a 162334512 id b 162334512 a is b true 可以看出,python 中,變數是以內容為基準而不是像 c 中以變數名為基準,所以只要你的數字內容是5,不管你起什麼名字,這個變數的 id 是相同的,同時也就說明了 python 中乙個變數可以以多個...