PyQt5學習筆記05 高階介面控制項

2021-09-26 23:36:45 字數 3117 閱讀 2601

**和樹

qtablewidget繼承自qtableview,主要區別是qtableview可以使用自定義的資料模型來顯示內容(先要通過setmodel來繫結資料來源),而qtablewidget只能使用標準的資料型別,並且單元格資料是通過qtablewidgetitem物件來實現的。

import sys

from 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

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()

多文件介面qmdiarea類和qmdisubwindow類中的常用方法

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 進入程式的主迴圈,並通...