小编Ruc*_*hit的帖子

PyQt QTableView设置水平和垂直标题标签

使用QTableWidget,我可以做到

table = QTableWidget()
table.setHorizontalHeaderLabels(QString("Name;Age;Sex;Add").split(";"))
table.horizontalHeaderItem().setTextAlignment(Qt.AlignHCenter)
Run Code Online (Sandbox Code Playgroud)

我怎么能用QTableView做同样的事情?

python pyqt

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

PyQt:QFileSystemModel 复选框过滤器

我正在尝试使用 python/pyqt 创建一个实用程序,以从 a 创建 *.tar 存档QFileSystemModel(仅包括那些被检查的项目)。现在我想要控制QFileSystemModel复选框以使用文件名/文件类型/文件大小进行过滤。

如何QFileSystemModel使用通配符搜索文件名/文件类型/文件大小来选中/取消选中类外的复选框?

class CheckableDirModel(QtGui.QFileSystemModel):
    def __init__(self, parent=None):
        QtGui.QFileSystemModel.__init__(self, None)
        self.checks = {}

    def data(self, index, role=QtCore.Qt.DisplayRole):
        if role != QtCore.Qt.CheckStateRole:
            return QtGui.QFileSystemModel.data(self, index, role)
        else:
            if index.column() == 0:
                return self.checkState(index)

    def flags(self, index):
        return QtGui.QFileSystemModel.flags(self, index) | QtCore.Qt.ItemIsUserCheckable

    def checkState(self, index):
        if index in self.checks:
            return self.checks[index]
        else:
            return QtCore.Qt.Checked

    def setData(self, index, value, role):
        if (role == QtCore.Qt.CheckStateRole and index.column() == 0):
            self.checks[index] = value
            self.emit(QtCore.SIGNAL("dataChanged(QModelIndex,QModelIndex)"), …
Run Code Online (Sandbox Code Playgroud)

python filtering pyqt qfilesystemmodel

9
推荐指数
0
解决办法
1471
查看次数

带有命名参数的信号

我正在尝试使用 PySide2 复制以下示例。

https://evileg.com/en/post/242/

但是由于 PySide2 不支持向 QML 发出带有命名参数的信号,我不知道如何使用 PySide2 做到这一点?

这是我的代码

主文件

from PySide2.QtGui import QGuiApplication
from PySide2.QtQml import QQmlApplicationEngine
from PySide2.QtCore import QObject, Signal, Slot, Property


class Calculator(QObject):
    def __init__(self):
        QObject.__init__(self)

    sumResult = Signal(int)
    subResult = Signal(int)

    @Slot(int, int)
    def sum(self, arg1, arg2):
        self.sumResult.emit(arg1 + arg2)

    @Slot(int, int)
    def sub(self, arg1, arg2):
        self.subResult.emit(arg1 - arg2)


if __name__ == "__main__":
    import sys

    app = QGuiApplication(sys.argv)
    engine = QQmlApplicationEngine()
    calculator = Calculator()
    engine.rootContext().setContextProperty("calculator", calculator)
    engine.load("/code/QML/calc.qml")

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

python qml pyside2

2
推荐指数
1
解决办法
1453
查看次数

Django 2.0 密码验证

默认情况下,在 Django 2.0 中,我们使用AUTH_PASSWORD_VALIDATORS选项

  • UserAttributeSimilarityValidator
  • 最小长度验证器
  • 通用密码验证器
  • 数字密码验证器

那么有没有什么简单的方法可以添加额外的验证器,例如最少 1 个大写字母、1 个符号、1 个数字等?

在 python 中,我可以检查 Using regex

import re
userPass = 'HelloWorld*123'
if re.search('[A-Z]', userPass)!=None and re.search('[0-9]', userPass)!=None and re.search('[^A-Za-z0-9]', userPass)!=None:
    print 'Strong Password'
Run Code Online (Sandbox Code Playgroud)

python regex django

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

滑动 QStackedWidget 页面

如何QtWidgets.QStackedWidget在 QPushButton.clicked 上滑动页面,如下图(右)所示?动作:在左键按下 QStackedWidget 页面索引将设置为 0 & 在右键按下 QStackedWidget 页面索引将设置为 1

python qstackedwidget pyside2

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