update 更新设置表格
This commit is contained in:
96
test.py
96
test.py
@ -1,73 +1,49 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QSlider, QLabel, QPushButton
|
||||
from PySide6.QtCore import Qt
|
||||
|
||||
import time
|
||||
class SliderExample(QWidget):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
||||
import requests
|
||||
self.init_ui()
|
||||
|
||||
from PySide6.QtCore import (QThread, Signal, Slot, QSize)
|
||||
from PySide6.QtWidgets import (QApplication, QPushButton, QLabel, QVBoxLayout, QWidget)
|
||||
class WorkerThread(QThread):
|
||||
# 定义一个信号,用于在线程中发送数据给主线程
|
||||
update_label = Signal(str)
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
for i in range(5):
|
||||
time.sleep(2) # 模拟耗时操作
|
||||
self.update_label.emit(f"{i + 1}")
|
||||
|
||||
class MyThread(QThread):
|
||||
signal_tuple = Signal(tuple)
|
||||
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
for idx in range(1, 10):
|
||||
time.sleep(2)
|
||||
# 任务完成后发出信号
|
||||
self.signal_tuple.emit((idx, ''))
|
||||
|
||||
|
||||
class MainWindow(QWidget):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent=parent)
|
||||
self.setup_ui()
|
||||
#
|
||||
self.button.clicked.connect(self.setup_thread)
|
||||
|
||||
def setup_ui(self):
|
||||
self.setWindowTitle('demo')
|
||||
self.resize(QSize(250, 180))
|
||||
def init_ui(self):
|
||||
# 创建一个垂直布局
|
||||
layout = QVBoxLayout()
|
||||
# 创建一个标签
|
||||
self.label = QLabel('This is a label => ')
|
||||
|
||||
# 创建一个标签来显示滑块的值
|
||||
self.label = QLabel("当前值: 0", self)
|
||||
layout.addWidget(self.label)
|
||||
# 创建一个按钮
|
||||
self.button = QPushButton('Send Request')
|
||||
|
||||
# 创建一个滑块
|
||||
self.slider = QSlider(Qt.Horizontal, self)
|
||||
self.slider.setMinimum(0)
|
||||
self.slider.setMaximum(100)
|
||||
self.slider.setValue(0) # 初始值设为0
|
||||
self.slider.setTickPosition(QSlider.TicksBelow)
|
||||
self.slider.setTickInterval(10)
|
||||
layout.addWidget(self.slider)
|
||||
|
||||
# 创建一个按钮来获取滑块的当前值
|
||||
self.button = QPushButton("获取滑块值", self)
|
||||
self.button.clicked.connect(self.show_slider_value)
|
||||
layout.addWidget(self.button)
|
||||
# 将布局设置为主窗口的布局
|
||||
|
||||
# 设置窗口布局
|
||||
self.setLayout(layout)
|
||||
# 显示窗口
|
||||
self.show()
|
||||
|
||||
def setup_thread(self):
|
||||
self.thread_ = MyThread()
|
||||
self.thread_.signal_tuple.connect(self.thread_finished)
|
||||
self.thread_.start()
|
||||
self.setWindowTitle('QSlider 示例')
|
||||
|
||||
def send_request(self):
|
||||
return requests.get('https://www.csdn.net/').text[:15]
|
||||
def show_slider_value(self):
|
||||
# 直接获取滑块的当前值并更新标签
|
||||
value = self.slider.value()
|
||||
print(f"滑块的值是: {value}") # 添加打印以调试
|
||||
self.label.setText(f"当前值: {value}")
|
||||
|
||||
@Slot(tuple)
|
||||
def thread_finished(self, item):
|
||||
self.label.setText('This is a label => ' + str(item))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if __name__ == "__main__":
|
||||
app = QApplication([])
|
||||
window = MainWindow()
|
||||
window.show()
|
||||
app.exec()
|
||||
|
||||
window = SliderExample()
|
||||
window.show()
|
||||
|
||||
app.exec()
|
||||
|
||||
Reference in New Issue
Block a user