如何访问Python中函数后定义的变量
这是我的代码:
from PyQt5.QtWidgets import (QApplication, QLabel, QMainWindow, QSlider)
from PyQt5.QtCore import Qt
import sys
app = QApplication(sys.argv)
window = QMainWindow()
def change_value():
window.setStyleSheet('QLabel{ \n'
'font-size:20px;\n'
'background:transparent;\n'
'}\n'
'QMainWindow{ \n'
f'background:rgb({red_slider.value()}, {green_slider.value()}, {blue_slider.value()});\n'
'}')
red_value.setText(f'{rsv}')
green_value.setText(f'{gsv}')
blue_value.setText(f'{bsv}')
#-------------------------------------------------------------------#
red_label = QLabel('red', window) #
red_label.move(140, 247) #
# #
red_slider = QSlider(Qt.Horizontal, window) #
red_slider.setGeometry(190, 250, 200, 30) #
red_slider.setMinimum(0) # red
red_slider.setMaximum(255) #
red_slider.valueChanged.connect(change_value) #
red_slider.setValue(255) #
# #
red_value = QLabel('0', window) #
red_value.move(400, 247)
#-------------------------------------------------------------------#
#----------------------------------------------------------------------#
green_label = QLabel('green', window) #
green_label.move(135, 297) #
# #
green_slider = QSlider(Qt.Horizontal, window) #
green_slider.setGeometry(190, 300, 200, 30) #
green_slider.setMinimum(0) # green
green_slider.setMaximum(255) #
green_slider.valueChanged.connect(change_value) #
green_slider.setValue(255) #
# #
green_value = QLabel('0', window) #
green_value.move(400, 297)
#----------------------------------------------------------------------#
#--------------------------------------------------------------------#
blue_label = QLabel('blue', window) #
blue_label.move(140, 347) #
# #
blue_slider = QSlider(Qt.Horizontal, window) #
blue_slider.setGeometry(190, 350, 200, 30) #
blue_slider.setMinimum(0) # blue
blue_slider.setMaximum(255) #
blue_slider.valueChanged.connect(change_value) #
blue_slider.setValue(255) #
# #
blue_value = QLabel('0', window) #
blue_value.move(400, 347)
#--------------------------------------------------------------------#
window.setStyleSheet('QLabel{ \n'
'font-size:20px;\n'
'background:transparent;\n'
'}\n'
'QMainWindow{ \n'
f'background:rgb({red_slider.value()}, {green_slider.value()}, {blue_slider.value()});\n'
'}')
window.show()
app.exec_()
我在这里得到了一个错误:
f'background:rgb({red_slider.value()}, {green_slider.value()}, {blue_slider.value()});\n'
在函数中,(红色\u滑块)工作正常,但(绿色\u滑块)和(蓝色\u滑块)出现以下错误:
Traceback (most recent call last):
File "E:\????? ????\????? ????\??????\??????? PyQt5\????? 1.py", line 18, in change_value
f'background:rgb({red_slider.value()}, {green_slider.value()}, {blue_slider.value()});\n'
NameError: name 'green_slider' is not defined
如果有人知道怎么了,请告诉我
先谢谢你
您需要绑定信号和插槽 创建所有对象后(
red_slider
,green_slider
,blue_slider
)相关问题 更多 >
编程相关推荐