some script.

This commit is contained in:
luming 2023-08-31 18:18:18 +08:00
parent fa60499078
commit 3b396f652f
3 changed files with 152 additions and 7 deletions

89
demo.py Normal file
View 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
View File

@ -1,9 +1,8 @@
import sys
from PySide6 import QtWidgets
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget, \
QHBoxLayout, QSplitter, QTextEdit
QTextEdit
class TableWidgetExample(QMainWindow):
@ -16,12 +15,15 @@ class TableWidgetExample(QMainWindow):
self.setWindowTitle("QTableWidget Example")
self.setGeometry(100, 100, 800, 600)
top_layout = QVBoxLayout()
central_widget = QWidget(self)
central_widget.setLayout(top_layout)
central_widget = QWidget()
center_layout = QVBoxLayout(central_widget)
# central_widget.setLayout(center_layout)
self.setCentralWidget(central_widget)
table = QTableWidget(self)
top_widget = QWidget()
top_layout = QVBoxLayout(top_widget)
table = QTableWidget()
table.setColumnCount(3)
table.setHorizontalHeaderLabels(["URL", "状态", "操作"])
@ -44,13 +46,16 @@ class TableWidgetExample(QMainWindow):
table.setItem(row, col, item)
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)
# central_widget.addWidget(bottom_widget)
center_layout.addWidget(bottom_widget)
if __name__ == "__main__":
app = QApplication(sys.argv)

51
opera.py Normal file
View 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()