我的代码有问题。我已经搜索了答案并使用了示例代码,但仍然无法解决这个问题。我有一个表格,我希望在单击表格行时激活一个插槽。目前我正试图让按钮对被点击做出反应。我做错了什么?提前致谢。
from PySide6.QtCore import *
from PySide6.QtWidgets import *
from PySide6.QtGui import *
class Window(QWidget):
def __init__(self):
# Initiate superclass
QWidget.__init__(self)
# Window-Layout setup
layout = QGridLayout()
self.setLayout(layout)
# Table-Tab setup
tab1 = TableTab(12, 3)
tab2 = TableTab(12, 3)
tab3 = TableTab(12, 3)
tab1.addItem(0, 0, "Hej världen")
# Tab-Widget setup
tabWidget = QTabWidget()
tabWidget.addTab(tab1.tRender(), "Available")
tabWidget.addTab(tab2.tRender(), "Active")
tabWidget.addTab(tab3.tRender(), "Completed")
# Add Tab-Widget to layout
layout.addWidget(tabWidget, 0, 0)
class Tab():
def __init__(self):
# Define layout
self.layout = QGridLayout()
def tRender(self):
# Render tab
self.tab = QWidget()
self.tab.setLayout(self.layout)
return self.tab
class TableTab(Tab):
def __init__(self, rows, cols):
# Initiate superclass
Tab.__init__(self)
# Setup table
self.table = QTableWidget(rows, cols)
self.table.setHorizontalHeaderLabels(["Job Overview", "Employer", "Payment", "Confirmed", "Date"])
self.table.setEditTriggers(QTableWidget.NoEditTriggers)
# Fix Headers
header = self.table.horizontalHeader()
for i in range(cols):
if i == 0:
header.setSectionResizeMode(0, QHeaderView.Stretch)
else:
header.setSectionResizeMode(i, QHeaderView.ResizeToContents)
# Add widget to layout
self.layout.addWidget(self.table, 0, 0)
def addItem(self, row, col, text):
# Create a cell widget
self.btn = Button(text)
self.table.setCellWidget(row, col, self.btn)
# THIS IS THE BUTTON CLASS
class Button(QPushButton):
def __init__(self, text):
QPushButton.__init__(self)
self.setFlat(1)
self.setText(text)
self.setStyleSheet("QPushButton { text-align: left; }")
# THIS IS THE CLICK CONNECT
self.clicked.connect(print("Hello World!"))
if __name__ == "__main__":
app = QApplication()
screen = Window()
screen.setWindowTitle("BlaBlaNet - Freelancer")
screen.setFixedSize(800, 600)
screen.show()
app.exec_()