我制作了一个可以计算游戏结束次数的列表(数组)。但如果有人重新开始游戏,列表的长度将重置。
据我所知,QSettings致力于保存和存储数据。我已阅读文档,但对我没有帮助。
例如,我有一个全局数组:
global finishcount
finishcount = []
如何将此应用于QSettings?因此,我可以在数据上附加数据而不会在重新启动后丢失数据。
看起来应该是这样吗?
from PyQt4 import QtGui, QtCore
global finishcount
finishcount = []
settings = QtCore.QSettings(self)
settings.setValue(finishcount, self)
我怎样才能做到这一点?或者我可以在QSettings中列出我可以附加内容的列表吗?
答案 0 :(得分:2)
下面是一个非常简单的演示,演示了如何读取和写入QSettings
的整数列表。每次打开和关闭窗口时,演示都会自动添加一个新值。
如果您正在使用PyQt,则根本不需要使用json
。对于列表,只需提供默认值,并指定包含值的类型:
settings.value('finishcount', [], int)
演示:
from PyQt4 import QtCore, QtGui
class Window(QtGui.QWidget):
def __init__(self):
super(Window, self).__init__()
settings = QtCore.QSettings('my_org', 'my_app')
self._finishcount = settings.value('finishcount', [], int)
print('read settings: %s' % self._finishcount)
# add a new value for testing
self._finishcount.append(len(self._finishcount))
def closeEvent(self, event):
settings = QtCore.QSettings('my_org', 'my_app')
settings.setValue('finishcount', self._finishcount)
print('save settings: %s' % self._finishcount)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.setGeometry(600, 100, 100, 100)
window.show()
sys.exit(app.exec_())
NB :对于字符串列表的特殊情况,最好使用它:
settings.value('finishcount', [], 'QStringList')
而不是使用str
指定类型。否则,空列表将无法得到正确处理。
答案 1 :(得分:1)
通常它看起来像这样。这也假设您使用public function set_news()
{
$this->load->helper('url');
$slug = url_title($this->input->post('title'), 'dash', TRUE);
$data = array(
'title' => $this->input->post('title'),
'slug' => $slug,
'text' => $this->input->post('text')
);
$this->db->insert('news', $data);
$id = $this->db->insert_id();
return $this->db->get_where('news', array('id' => $id))->result();
}
api的<pre>
<?php var_dump($r);?>
</pre>
版本;否则,从v2
返回的结果将是QVariant
,您需要将其转换为适当的python类型。如果您使用的是QSettings.value
的最新版本,那么您应该在QVariant
,but if not you can force it上,将其粘贴在文件的顶部
PyQt
此外,即使使用api的v2
版本,它通常并不总是按预期工作,而是比字符串或数字更复杂。对于更复杂的类型,例如import sip
sip.setapi('QVariant', 2)
sip.setapi('QString', 2)
和v2
,我发现使用json
或pickle
序列化值通常会更好,并将其保存到lists
相反,然后在检索它时自己反序列化。
dicts