当我在示例中单击“打开”时,打开windowncheck窗口,在窗口windowncheck中我选中复选框_5和复选框_6,然后按close,当我重新打开windowncheck时,复选框_5和复选框_6不再可用。如何使复选框_5和复选框_6不丢失
import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
qbtn = QPushButton('Quit', self)
qbtn.clicked.connect(QApplication.instance().quit)
qbtn.resize(50,50)
qbtn.move(50, 50)
qbtn.setStyleSheet("color:red")
qbtn.setStyleSheet("background-color:green")
newwindow_button = QPushButton('open', self)
newwindow_button.clicked.connect(self.windown)
newwindow_button.resize(50,50)
newwindow_button.move(150, 50)
self.setGeometry(300, 300, 350, 250)
self.setWindowTitle('Check state')
self.show()
def windown(self):
self.ff = Windowcheck()
class Windowcheck(QWidget):
def __init__(self, parent=None):
super(Windowcheck, self).__init__(parent)
self.listCheckBox = ["Checkbox_1", "Checkbox_2", "Checkbox_3", "Checkbox_4", "Checkbox_5",
"Checkbox_6", "Checkbox_7", "Checkbox_8", "Checkbox_9", "Checkbox_10" ]
self.listLabel = ['', '', '', '', '', '', '', '', '', '', ]
grid = QGridLayout()
for i, v in enumerate(self.listCheckBox):
self.listCheckBox[i] = QCheckBox(v)
self.listLabel[i] = QLabel()
grid.addWidget(self.listCheckBox[i], i, 0)
grid.addWidget(self.listLabel[i], i, 1)
self.button = QPushButton("CheckBox")
self.button.clicked.connect(self.checkboxChanged)
self.button_close = QPushButton("close")
self.button_close.clicked.connect(self.close)
self.labelResult = QLabel()
grid.addWidget(self.button, 10, 0, 1,2)
grid.addWidget(self.button_close,11, 0, 1,2)
grid.addWidget(self.labelResult, 12, 0, 1,2)
self.setLayout(grid)
self.show()
def checkboxChanged(self):
self.labelResult.setText("")
for i, v in enumerate(self.listCheckBox):
self.listLabel[i].setText("True" if v.checkState() else "False")
self.labelResult.setText("{}, {}".format(self.labelResult.text(),
self.listLabel[i].text()))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
程序在运行时将其状态信息加载到RAM中,关闭应用程序后,该信息将丢失,因此该信息不会持久。如果希望应用程序在关闭前保存状态,则必须通过文件将该信息存储在硬盘上。例如,在Qt中,您可以使用QSettings来完成该工作:
相关问题 更多 >
编程相关推荐