some script.
This commit is contained in:
parent
fa60499078
commit
3b396f652f
89
demo.py
Normal file
89
demo.py
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
import sys
|
||||||
|
from functools import partial
|
||||||
|
from PySide6.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QPushButton, QVBoxLayout, \
|
||||||
|
QWidget, QTextEdit, QHeaderView, QHBoxLayout
|
||||||
|
|
||||||
|
|
||||||
|
class TableWidgetExample(QMainWindow):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
|
||||||
|
self.initUI()
|
||||||
|
|
||||||
|
def initUI(self):
|
||||||
|
self.setWindowTitle("QTableWidget Example")
|
||||||
|
self.setGeometry(100, 100, 800, 600)
|
||||||
|
|
||||||
|
central_widget = QWidget()
|
||||||
|
center_layout = QVBoxLayout(central_widget)
|
||||||
|
self.setCentralWidget(central_widget)
|
||||||
|
|
||||||
|
top_widget = QWidget()
|
||||||
|
top_layout = QVBoxLayout(top_widget)
|
||||||
|
|
||||||
|
table = QTableWidget()
|
||||||
|
table.setColumnCount(3) # Add one more column for buttons
|
||||||
|
|
||||||
|
table.setHorizontalHeaderLabels(["URL", "状态", "操作"])
|
||||||
|
|
||||||
|
header = table.horizontalHeader()
|
||||||
|
header.setSectionResizeMode(QHeaderView.ResizeToContents)
|
||||||
|
header.setSectionResizeMode(0, QHeaderView.Stretch)
|
||||||
|
|
||||||
|
data = [
|
||||||
|
["https://baidu.com", "队列中"],
|
||||||
|
["https://google.com", "队列中"],
|
||||||
|
["https://rainss.cn", "队列中"]
|
||||||
|
]
|
||||||
|
|
||||||
|
table.setRowCount(len(data)) # Remove extra row
|
||||||
|
|
||||||
|
for row, rowData in enumerate(data):
|
||||||
|
for col, value in enumerate(rowData):
|
||||||
|
item = QTableWidgetItem(value)
|
||||||
|
table.setItem(row, col, item)
|
||||||
|
|
||||||
|
# Add buttons in the last column
|
||||||
|
button_layout = QHBoxLayout()
|
||||||
|
|
||||||
|
pause_button = QPushButton("暂停")
|
||||||
|
pause_button.setMinimumHeight(40) # Set button width
|
||||||
|
pause_button.setMinimumWidth(60) # Set button width
|
||||||
|
delete_button = QPushButton("删除")
|
||||||
|
delete_button.setMinimumHeight(40) # Set button width
|
||||||
|
delete_button.setMinimumWidth(60) # Set button width
|
||||||
|
|
||||||
|
pause_button.clicked.connect(partial(self.pause_button_clicked, row))
|
||||||
|
delete_button.clicked.connect(partial(self.delete_button_clicked, row))
|
||||||
|
|
||||||
|
button_layout.addWidget(pause_button)
|
||||||
|
button_layout.addWidget(delete_button)
|
||||||
|
|
||||||
|
button_container = QWidget()
|
||||||
|
button_container.setLayout(button_layout)
|
||||||
|
|
||||||
|
table.setCellWidget(row, 2, button_container)
|
||||||
|
|
||||||
|
|
||||||
|
top_layout.addWidget(table)
|
||||||
|
center_layout.addWidget(top_widget)
|
||||||
|
|
||||||
|
bottom_widget = QWidget()
|
||||||
|
bottom_widget.setFixedHeight(300)
|
||||||
|
bottom_layout = QVBoxLayout(bottom_widget)
|
||||||
|
input_text = QTextEdit()
|
||||||
|
bottom_layout.addWidget(input_text)
|
||||||
|
center_layout.addWidget(bottom_widget)
|
||||||
|
|
||||||
|
def pause_button_clicked(self, row):
|
||||||
|
print(f"Paused row {row}")
|
||||||
|
|
||||||
|
def delete_button_clicked(self, row):
|
||||||
|
print(f"Deleted row {row}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app = QApplication(sys.argv)
|
||||||
|
window = TableWidgetExample()
|
||||||
|
window.show()
|
||||||
|
sys.exit(app.exec())
|
||||||
19
dm.py
19
dm.py
@ -1,9 +1,8 @@
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
from PySide6 import QtWidgets
|
from PySide6 import QtWidgets
|
||||||
from PySide6.QtCore import Qt
|
|
||||||
from PySide6.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget, \
|
from PySide6.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget, \
|
||||||
QHBoxLayout, QSplitter, QTextEdit
|
QTextEdit
|
||||||
|
|
||||||
|
|
||||||
class TableWidgetExample(QMainWindow):
|
class TableWidgetExample(QMainWindow):
|
||||||
@ -16,12 +15,15 @@ class TableWidgetExample(QMainWindow):
|
|||||||
self.setWindowTitle("QTableWidget Example")
|
self.setWindowTitle("QTableWidget Example")
|
||||||
self.setGeometry(100, 100, 800, 600)
|
self.setGeometry(100, 100, 800, 600)
|
||||||
|
|
||||||
top_layout = QVBoxLayout()
|
central_widget = QWidget()
|
||||||
central_widget = QWidget(self)
|
center_layout = QVBoxLayout(central_widget)
|
||||||
central_widget.setLayout(top_layout)
|
# central_widget.setLayout(center_layout)
|
||||||
self.setCentralWidget(central_widget)
|
self.setCentralWidget(central_widget)
|
||||||
|
|
||||||
table = QTableWidget(self)
|
top_widget = QWidget()
|
||||||
|
top_layout = QVBoxLayout(top_widget)
|
||||||
|
|
||||||
|
table = QTableWidget()
|
||||||
table.setColumnCount(3)
|
table.setColumnCount(3)
|
||||||
|
|
||||||
table.setHorizontalHeaderLabels(["URL", "状态", "操作"])
|
table.setHorizontalHeaderLabels(["URL", "状态", "操作"])
|
||||||
@ -44,13 +46,16 @@ class TableWidgetExample(QMainWindow):
|
|||||||
table.setItem(row, col, item)
|
table.setItem(row, col, item)
|
||||||
|
|
||||||
top_layout.addWidget(table)
|
top_layout.addWidget(table)
|
||||||
|
center_layout.addWidget(top_widget)
|
||||||
|
|
||||||
# 下部分布局
|
# 下部分布局
|
||||||
bottom_widget = QWidget()
|
bottom_widget = QWidget()
|
||||||
|
bottom_widget.setFixedHeight(300)
|
||||||
bottom_layout = QVBoxLayout(bottom_widget)
|
bottom_layout = QVBoxLayout(bottom_widget)
|
||||||
input_text = QTextEdit()
|
input_text = QTextEdit()
|
||||||
bottom_layout.addWidget(input_text)
|
bottom_layout.addWidget(input_text)
|
||||||
# central_widget.addWidget(bottom_widget)
|
center_layout.addWidget(bottom_widget)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
|
|||||||
51
opera.py
Normal file
51
opera.py
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
import sys
|
||||||
|
from PySide6.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QPushButton, QVBoxLayout, QWidget
|
||||||
|
|
||||||
|
class TableExample(QMainWindow):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
|
||||||
|
self.setWindowTitle("Table Example")
|
||||||
|
self.setGeometry(100, 100, 400, 300)
|
||||||
|
|
||||||
|
self.central_widget = QWidget()
|
||||||
|
self.setCentralWidget(self.central_widget)
|
||||||
|
|
||||||
|
self.layout = QVBoxLayout()
|
||||||
|
self.central_widget.setLayout(self.layout)
|
||||||
|
|
||||||
|
self.table_widget = QTableWidget()
|
||||||
|
self.table_widget.setColumnCount(2)
|
||||||
|
self.table_widget.setHorizontalHeaderLabels(["Name", "Action"])
|
||||||
|
self.layout.addWidget(self.table_widget)
|
||||||
|
|
||||||
|
self.populate_table()
|
||||||
|
|
||||||
|
def populate_table(self):
|
||||||
|
data = [("Item 1", "Edit"), ("Item 2", "Edit"), ("Item 3", "Edit")]
|
||||||
|
|
||||||
|
for row, (name, action) in enumerate(data):
|
||||||
|
self.table_widget.insertRow(row)
|
||||||
|
name_item = QTableWidgetItem(name)
|
||||||
|
self.table_widget.setItem(row, 0, name_item)
|
||||||
|
|
||||||
|
button = QPushButton(action)
|
||||||
|
button.clicked.connect(self.button_clicked)
|
||||||
|
self.table_widget.setCellWidget(row, 1, button)
|
||||||
|
|
||||||
|
def button_clicked(self):
|
||||||
|
button = self.sender()
|
||||||
|
if isinstance(button, QPushButton):
|
||||||
|
index = self.table_widget.indexAt(button.pos())
|
||||||
|
if index.isValid():
|
||||||
|
row = index.row()
|
||||||
|
print(f"Button clicked in row {row}")
|
||||||
|
|
||||||
|
def main():
|
||||||
|
app = QApplication(sys.argv)
|
||||||
|
window = TableExample()
|
||||||
|
window.show()
|
||||||
|
sys.exit(app.exec())
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Reference in New Issue
Block a user