QTableWidget(จำนวนแถว, จำนวนคอลัมน์)
widget_ตาราง.setRowHeight(ลำดับแถว, ค่าความสูง)
widget_ตาราง.setColumnWidth(ลำดับคอลัมน์, ค่าความกว้าง)
widget_ตาราง.setCellWidget(ลำดับแถว, ลำดับคอลัมน์, ตัว_widget_ที่จะใส่)
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QTableWidget,QPushButton
qAp = QApplication(sys.argv)
natang = QMainWindow()
natang.setStyleSheet('font-family: Courier New; font-size: 18px;')
natang.resize(400,300)
thaepsathana = natang.statusBar()
def kotlaeo(s): # ให้แสดงข้อความเมื่อกดปุ่ม
def f():
thaepsathana.showMessage('กด ('+s+')')
return f
tarang = QTableWidget(4,3) # สร้างพื้นที่แสดงตาราง
natang.setCentralWidget(tarang)
tarang.setColumnWidth(2,150)
for j in range(4): # ไล่แต่ละแถว
tarang.setRowHeight(j,50)
for i in range(3): # ไล่แต่ละคอลัมน์
s = '[%d,%d]'%(j,i)
pum = QPushButton(s) # สร้างปุ่ม
pum.setFixedSize(100,50) # ปรับขนาดปุ่ม
tarang.setCellWidget(j,i,pum) # ใส่ปุ่มลงในช่อง
pum.clicked.connect(kotlaeo(s))
natang.show()
qAp.exec_()
import sys
from PyQt5.QtWidgets import QApplication,QTableWidget,QTableWidgetItem
qAp = QApplication(sys.argv)
tarang = QTableWidget(4,3) # สร้างตารางขนาด 4 แถว 3 คอลัมน์
tarang.setStyleSheet('font-size: 23px; font-family: Courier New;')
pkm = [ # รายชื่อโปเกมอน
['คิโมริ','จุปเทิล','จูไคน์'],
['อาชาโม','วากะชาโม','บาชาโม'],
['มิซึโงโรว','นุมาครอว์','ลากลาร์จ'],
['โปจิเอนา','กุราเอนา',''],
]
for i in range(3):
tarang.setColumnWidth(i,75)
for j in range(4):
item = QTableWidgetItem(pkm[j][i]) # สร้างตัว QTableWidgetItem ขึ้นมา
tarang.setItem(j,i,item) # ใส่ตัว QTableWidgetItem นั้นลงในแถวและคอลัมน์ที่กำหนด
print(tarang.item(4,3)) # ได้ None
print(tarang.item(1,2)) # ได้ <PyQt5.QtWidgets.QTableWidgetItem object at 0x000002BB258A61F0>
print(tarang.item(2,2).text()) # ได้ ลากลาร์จ
tarang.show()
qAp.exec_()
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QTableWidget,QTableWidgetItem
qAp = QApplication(sys.argv)
natang = QMainWindow()
natang.resize(450,150)
css = '''
* {
font-size: 16px;
font-family: Tahoma;}
QTableWidget {
background-color: #edd;}
QHeaderView:section {
background-color: #dde;}'''
natang.setStyleSheet(css) # ปรับสีส่วนตารางแล้วก็ส่วนหัวแถวและคอลัมน์
tarang = QTableWidget(3,4) # สร้างตารางขนาด 3 แถว 4 คอลัมน์
natang.setCentralWidget(tarang) # ให้ตาราเป็น widget ในกลางของ QMainWindow
tarang.setVerticalHeaderLabels(['152','155','158']) # ชื่อแต่ละแถว
tarang.setHorizontalHeaderLabels(['ชื่อ','ชนิด','สูง','หนัก']) # ชื่อแต่ละคอลัมน์
lis_pokemon = [
['ชิโครีตา','พืช','0.9','6.4'],
['ฮิโนอาราชิ','ไฟ','0.5','7.9'],
['วานิโนโกะ','น้ำ','0.6','9.5'],
]
for j,pk in enumerate(lis_pokemon):
for i,s in enumerate(pk):
# สร้าง QTableWidgetItem ขึ้นมาใส่ลงในแถวและคอลัมน์ที่กำหนด
tarang.setItem(j,i,QTableWidgetItem(s))
natang.show()
qAp.exec_()
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QTableWidget,QPushButton,QLabel,QVBoxLayout
qAp = QApplication(sys.argv)
natang = QWidget()
natang.resize(400,400)
natang.setStyleSheet('font-size: 16px; font-family: Tahoma;')
vbl = QVBoxLayout()
natang.setLayout(vbl)
tarang = QTableWidget(4,3) # สร้างตาราง
vbl.addWidget(tarang)
khokhwam = QLabel('...\n...') # ส่วนข้อความที่จะแสดงตำแหน่งที่ถูกลากคลุมอยู่
vbl.addWidget(khokhwam)
def mueakot(): # เมื่อกดปุ่ม
lis_chuanglueak = tarang.selectedRanges() # ดูว่าเลือกช่วงไหนอยู่
if(lis_chuanglueak): # ถ้าเลือกอยู่จะมีออบเจ็กต์ QTableWidgetSelectionRange ตัวหนึ่งอยู่ภายในลิสต์
chuanglueak = lis_chuanglueak[0]
bon = chuanglueak.topRow() # ลำดับแถวบนสุดที่เลือกอยู่
lang = chuanglueak.bottomRow() # ลำดับแถวล่างสุดที่เลือกอยู่
sai = chuanglueak.leftColumn() # ลำดับคอลัมน์ซ้ายสุดที่เลือกอยู่
khwa = chuanglueak.rightColumn() # ลำดับคอลัมน์ขวาสุดที่เลือกอยู่
n_row = chuanglueak.rowCount() # จำนวนแถวที่เลือกอยู่
n_col = chuanglueak.columnCount() # จำนวนคอลัมน์ที่เลือกอยู่
# แสดงข้อมูลใน QLabel ภายในหน้าต่าง
khokhwam.setText('บน: %d, ล่าง: %d, ซ้าย: %d, ขวา: %d\nครอบคลุม %d แถว × %d คอลัมน์'%(bon,lang,sai,khwa,n_row,n_col))
# พิมพ์ข้อมูลช่องที่เลือกอยู่ล่าสุด
yu_row = tarang.currentRow()
yu_col = tarang.currentColumn()
print('อยู่ที่แถวที่ %d คอลัมน์ที่ %d'%(yu_row,yu_col))
pumkot = QPushButton('ดูขอบเขตและตำแหน่งปัจจุบัน') # ปุ่มกด
vbl.addWidget(pumkot)
pumkot.clicked.connect(mueakot)
natang.show()
qAp.exec_()
import sys
from PyQt5.QtWidgets import QApplication,QWidget,QTableWidget,QLabel,QVBoxLayout
qAp = QApplication(sys.argv)
natang = QWidget()
natang.resize(400,240)
natang.setStyleSheet('font-size: 19px; font-family: Tahoma;')
vbl = QVBoxLayout()
natang.setLayout(vbl)
tarang = QTableWidget(4,8)
for i in range(8):
tarang.setColumnWidth(i,40)
vbl.addWidget(tarang)
khokhwam = QLabel('')
vbl.addWidget(khokhwam)
def mueaplian():
lis_chuanglueak = tarang.selectedRanges()
if(lis_chuanglueak):
chuanglueak = lis_chuanglueak[0]
n_row = chuanglueak.rowCount() # จำนวนแถวที่เลือกอยู่
n_col = chuanglueak.columnCount() # จำนวนคอลัมน์ที่เลือกอยู่
khokhwam.setText('เลือกอยู่ %d ช่อง'%(n_row*n_col)) # แสดงจำนวนช่องในข้อความด้านล่าง
tarang.itemSelectionChanged.connect(mueaplian)
natang.show()
qAp.exec_()
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QWidget,QTableWidget,QLabel,QVBoxLayout
qAp = QApplication(sys.argv)
natang = QMainWindow()
natang.resize(440,300)
natang.setStyleSheet('* {font-size: 19px; font-family: Tahoma;} QHeaderView:section {background-color: #ade; color: #152;}')
suanlak = QWidget()
natang.setCentralWidget(suanlak)
thaep_sathana = natang.statusBar() # แถบสถานะด้านล่าง ซึ่งจะให้แสดงเมื่อถูกดับเบิลคลิก
thaep_sathana.setStyleSheet('background-color: #fe7; color: #903;')
vbl = QVBoxLayout()
suanlak.setLayout(vbl)
tarang = QTableWidget(6,13)
for i in range(13):
tarang.setColumnWidth(i,30)
vbl.addWidget(tarang)
khokhwam = QLabel('') # ส่วนข้อความที่จะให้แสดงเมื่อถูกกดแล้วปล่อย
vbl.addWidget(khokhwam)
def thukkot(r,c):
print('แถว %d คอลัมน์ %d ถูกกด'%(r,c))
def thukclick(r,c):
khokhwam.setText('แถว %d คอลัมน์ %d ถูกกดแล้วปล่อย'%(r,c))
def thukdoubleclick(r,c):
thaep_sathana.showMessage('แถว %d คอลัมน์ %d ถูกดับเบิลคลิก'%(r,c))
tarang.cellPressed.connect(thukkot)
tarang.cellClicked.connect(thukclick)
tarang.cellDoubleClicked.connect(thukdoubleclick)
natang.show()
qAp.exec_()
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QTableWidget,QTableWidgetItem
qAp = QApplication(sys.argv)
natang = QMainWindow()
natang.setStyleSheet('* {font-size: 28px; font-family: Courier New; color: #150} QHeaderView:section {background-color: #cae; color: #621;}')
thaep_sathana = natang.statusBar() # แถบสถานะด้านล่าง
tarang = QTableWidget(4,5)
natang.setCentralWidget(tarang)
for i in range(5):
tarang.setColumnWidth(i,45)
for j in range(4):
item = QTableWidgetItem('กขคฆงจฉชฌญตถทธนปผพภม'[i+j*5])
tarang.setItem(j,i,item)
def thukclick(item):
thaep_sathana.showMessage('%s ถูกคลิก'%(item.text()))
tarang.itemClicked.connect(thukclick)
natang.show()
qAp.exec_()
import sys
from PyQt5.QtWidgets import QApplication,QTableWidget
qAp = QApplication(sys.argv)
tarang = QTableWidget(5,3)
tarang.setStyleSheet('* {font-size: 20px; font-family: Courier New;} QTableWidget {background-color: #edf;} QHeaderView:section {background-color: #fed;}')
def kaelaeo(r,c):
item = tarang.item(r,c) # เอาตัวออบเจ็กต์ในตำแหน่งนั้น
print('แถว %d คอลัมน์ %d ถูกแก้เป็น "%s"'%(r,c,item.text()))
tarang.cellChanged.connect(kaelaeo)
tarang.show()
qAp.exec_()
ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ