小编Loz*_*zer的帖子

如何让 SQLite 缓存 select 命令的结果

我正在运行一个带有后端 SQLite 数据库的 Web 应用程序,该数据库仅执行读取操作。用户连接到数据库,通过选择命令搜索条目,然后在浏览器中查看结果。但是,选择非常耗时,因为它涉及数百万表行的字符模式匹配。(结果表的大小相当小)。

不同的用户通常会执行完全相同的搜索,因此如果我可以缓存第一次选择的结果,则下一个搜索数据库的用户(同时或更可能是几天后)可以快速取回结果。

我怎样才能在 SQLite 中做到这一点?有我需要使用的编译指示吗?我听说 SQLite 有自动缓存功能,但这似乎没有帮助。请注意,我正在使用托管服务,因此无论如何我都无法重建 SQLite。

任何帮助将非常感激。

sqlite caching query-optimization

5
推荐指数
1
解决办法
1万
查看次数

在PyQt(或PySide)中编码时,我应该使用Python函数还是等效的Qt函数?

使用PyQt或PySide编写代码时,有时Qt和Python都可以使用等效函数(例如,QDir.exists在Qt和os.path.existsPython中).在这些情况下,是否存在使用哪种语言的惯例?

我想知道速度,重构等问题是否与决定有关.

谢谢.

python pyqt pyside

5
推荐指数
1
解决办法
231
查看次数

如何在QTableView中滚动到Sqlite模型的最后一行?

我有一个连接到QTableView的几千行的Sqlite模型.我可以在QTableView中查看行,但是当我滚动到QTableView的底部时,我只能到达前几百行的末尾.如果我继续拉动滚动条按钮,新行会附加到视图中,但我无法轻松滚动到结尾.将所有行附加到视图后,我可以轻松地从上到下滚动而不会出现问题.

这是代码的重要部分(只是标准):

self.db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
self.db.setDatabaseName(dbFileName)

self.model = QtSql.QSqlTableModel(self.db)
self.model.setTable("results")
self.model.select()
self.tableViewResults.setModel(self.model)
Run Code Online (Sandbox Code Playgroud)

我必须错过一些非常简单的事情.有什么建议?

劳伦斯.

sqlite pyqt qtableview

5
推荐指数
1
解决办法
1132
查看次数

如何在 Qt/PyQt/PySide QLabel 中右对齐富文本 (HTML)?

我有一个简单的任务。

我想在 Qt 或 PyQt 或 PySide QLabel 中右对齐富文本 (HTML)。QLabel 工作正常,直到我调整小部件的大小,使其小于文本长度。此时,右侧的文本被切断。QLabel 可以正常使用纯文本。事实上,这只是这里问题的简化版本。

在下面的 PyQt 示例中,我列出了数字一到十。即使我调整小部件的大小,我也希望始终看到数字“十”。它适用于纯文本,但不适用于富文本 (HTML)。这是 Qt 中的错误吗?我添加了几个屏幕截图来显示效果。

缩小小部件之前

缩小小部件后

from PyQt4 import QtGui, QtCore

import sys

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    mw = QtGui.QWidget()

    labelPT = QtGui.QLabel()
    labelPT.setText('one two three four five six seven eight nine ten')
    labelPT.setAlignment(QtCore.Qt.AlignRight)

    labelRT = QtGui.QLabel()
    labelRT.setText('one two three four <b>five</b> six seven eight nine ten')
    labelRT.setAlignment(QtCore.Qt.AlignRight)

    vbox = QtGui.QVBoxLayout()
    vbox.addWidget(labelPT)
    vbox.addWidget(labelRT)

    mw.setLayout(vbox)
    mw.setMinimumWidth(30)
    mw.show()

    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

qt pyqt alignment richtext qlabel

5
推荐指数
1
解决办法
5803
查看次数