**和樹
qtablewidget繼承自qtableview,主要區別是qtableview可以使用自定義的資料模型來顯示內容(先要通過setmodel來繫結資料來源),而qtablewidget只能使用標準的資料型別,並且單元格資料是通過qtablewidgetitem物件來實現的。
import sysfrom pyqt5.qtcore import qobject, qt
class table( qwidget ):
def __init__(self):
super().__init__()
self.initui()
def initui(self):
self.setwindowtitle("qtablewidget 例子")
self.resize(500,300)
conlayout = qhboxlayout()
self.tablewidget= qtablewidget()
self.tablewidget.setrowcount(5)
self.tablewidget.setcolumncount(3)
conlayout.addwidget(self.tablewidget )
self.tablewidget.sethorizontalheaderlabels(['姓名','性別','體重' ])
self.tablewidget.horizontalheader().setsectionresizemode(qheaderview.stretch)
newitem = qtablewidgetitem("張三")
self.tablewidget.setitem(0, 0, newitem)
newitem = qtablewidgetitem("男")
self.tablewidget.setitem(0, 1, newitem)
newitem = qtablewidgetitem("160")
self.tablewidget.setitem(0, 2, newitem)
newitem = qtablewidgetitem("李四")
self.tablewidget.setitem(1, 0, newitem)
newitem = qtablewidgetitem("女")
self.tablewidget.setitem(1, 1, newitem)
newitem = qtablewidgetitem("170")
self.tablewidget.setitem(1, 2, newitem)
self.tablewidget.setcontextmenupolicy(qt.customcontextmenu)######允許右鍵產生子選單
self.tablewidget.customcontextmenurequested.connect(self.generatemenu) ####右鍵選單
self.setlayout(conlayout)
def generatemenu(self,pos):
#print( pos)
row_num = -1
for i in self.tablewidget.selectionmodel().selection().indexes():
row_num = i.row()
if row_num < 2 :
menu = qmenu()
item1 = menu.addaction(u"選項一")
item2 = menu.addaction(u"選項二")
item3 = menu.addaction(u"選項三" )
action = menu.exec_(self.tablewidget.maptoglobal(pos))
if action == item1:
print( '您選了選項一,當前行文字內容是:',self.tablewidget.item(row_num,0).text(),self.tablewidget.item(row_num,1).text() ,self.tablewidget.item(row_num,2).text())
elif action == item2:
print( '您選了選項二,當前行文字內容是:',self.tablewidget.item(row_num,0).text(),self.tablewidget.item(row_num,1).text() ,self.tablewidget.item(row_num,2).text())
elif action == item3:
print( '您選了選項三,當前行文字內容是:',self.tablewidget.item(row_num,0).text(),self.tablewidget.item(row_num,1).text() ,self.tablewidget.item(row_num,2).text())
else:
return
if __name__ == '__main__':
example = table()
example.show()
import sys多文件介面qmdiarea類和qmdisubwindow類中的常用方法from pyqt5.qtwidgets import *
from pyqt5.qtgui import *
if __name__ == '__main__':
model = qdirmodel()
tree = qtreeview()
tree.setmodel(model)
tree.setwindowtitle( "qtreeview 例子" )
tree.resize(640, 480)
tree.show()
PyQt5 學習筆記
pyqt5是由一系列python模組組成。超過620個類,6000函式和方法。能在諸如unix windows和mac os等主流作業系統上執行。pyqt5有兩種證書,gpl和商業證書。pyqt5類分為很多模組,主要模組有 qtcore 包含了核心的非gui的功能。主要和時間 檔案與資料夾 各種資料...
pyqt5學習筆記 1
from pyqt5.qt import import sys 使用sys.ar 是為了讓gui程式接收到使用者傳遞的引數 建立乙個控制項,如果這個控制項沒有父控制項,那麼pyqt5會控制項加上標題等屬性,並可以設定屬性內容 這個控制項也可以叫做頂層控制項,沒有父控制項的控制項的展示需要呼叫show...
pyqt5入門學習筆記
import sys if name main 建立乙個視窗 w qwidget 設定乙個視窗尺寸 w.resize 400,200 移動視窗 w.move 300,300 設定視窗標題 w.setwindowtitle 第乙個基於pyqt5的桌面應用 顯示視窗 w.show 進入程式的主迴圈,並通...