天道酬勤,学无止境

pyqt4

开发 pyqt4 树小部件(Developing pyqt4 tree widget)

问题 我需要写一棵树吗?,在 pyqt 中。 它看起来像这样: Clients(this is text) Type A (this is a Clients child and has a checkbox) Type B (this is a Clients child and has a checkbox) Vendors(this is text) Mary (this is a Vendors child and has a checkbox) Arnold (this is a Vendors child and has a checkbox) Time Period Init(this is a Time Period child, and would be a calendarWidget for date selection) End (this is a Time Period child, and would be a calendarWidget for date selection) 你会为此推荐什么? QTreeWidget ? QTreeView? 这将是我将用于构建 sql 查询的可点击项目。 谢谢阅读。 回答1 我建议您使用 QTreeWidget 而不是 QTreeView,因为您的任务非常简单。 QTreeView(带有自定义模型,例如

2022-01-25 04:09:05    分类:技术分享    pyqt4   qtreeview   qtreewidget

PyQt项目视图自定义拖放(PyQt item view custom drag and drop)

问题 我正在研究 QTableView 中的自定义拖放实现。 当我将一个单元格拖放到另一个单元格上时,我想根据拖动的内容和放置的位置手动更改模型中的一些数据。 我怎样才能做到这一点? 我一直在阅读所有 Qt 文档,但我完全迷失了,特别是拖放,似乎 C++ 到 PyQt 的转换不太直观。 基本上我需要的是当我放下时,我想知道最初拖动了哪些单元格,以及它们被放置在哪里。 我的困惑似乎在于 QMimeData。 据我所知,拖动开始时,拖动事件接收到正确的 MIME 数据,但我不知道如何在 PyQt 中获取它(过去能够用文本和 url 做这种事情,但我当涉及到项目视图时,我迷路了)。 我还需要知道我要去哪里。 我想我可以做一个“光标位置的项目”,但我假设这个数据已经存在于 drop 事件中,我只需要弄清楚如何查询它。 这是一个简单的例子: import sys from PyQt4 import QtGui, QtCore class TableView(QtGui.QTableView): def __init__(self, parent=None): QtGui.QTreeWidget.__init__(self, parent) self.setDragEnabled(True) self.setDropIndicatorShow(True) self

2022-01-25 01:29:34    分类:技术分享    python   pyqt   drag-and-drop   pyqt4

Developing pyqt4 tree widget

i need to write a tree?, in pyqt. It looks like this: Clients(this is text) Type A (this is a Clients child and has a checkbox) Type B (this is a Clients child and has a checkbox) Vendors(this is text) Mary (this is a Vendors child and has a checkbox) Arnold (this is a Vendors child and has a checkbox) Time Period Init(this is a Time Period child, and would be a calendarWidget for date selection) End (this is a Time Period child, and would be a calendarWidget for date selection) What would you recommend for this? QTreeWidget? QTreeView? This will be clickable items that i'll use to build sql

2022-01-24 21:35:43    分类:问答    pyqt4   qtreeview   qtreewidget

PyQt 与 Sqlalchemy 的集成(PyQt integration with Sqlalchemy)

问题 我正在尝试通过 Sqlalchemy 将我用 PyQt 创建的表单添加到数据库中,但我想我的代码有问题。我收到了这个错误 le "/Users/tunji/Desktop/employee.py", line 57, in AddEmployee session = session.add(Employee(self.name,self.email)) AttributeError: 'bool' object has no attribute 'name'. 任何人都可以提供可以通过使用 Sqlalchemy 创建到数据库中的表单添加信息的代码片段吗? from PyQt4 import QtCore, QtGui import sqlalchemy from sqlalchemy.ext.declarative import declarative_base # My base structure Base = declarative_base() try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context

2022-01-24 18:00:20    分类:技术分享    python   sqlalchemy   pyqt   pyqt4

QListView 中的复选框选择(Checkbox selection in QListView)

问题 我开发了一个带有复选框的简单对话框,它允许用户从列表中选择一个或多个项目。 除了标准的 OK 和 Cancel 按钮之外,它还添加了 Select All 和 Unselect All 按钮,允许用户一次选中/取消选中所有项目(这对于大型列表很方便)。 import os, sys from PyQt4 import Qt, QtCore, QtGui class ChecklistDialog(QtGui.QDialog): def __init__(self, name, stringlist=None, checked=False, icon=None, parent=None): super(ChecklistDialog, self).__init__(parent) self.name = name self.icon = icon self.model = QtGui.QStandardItemModel() self.listView = QtGui.QListView() if stringlist is not None: for i in range(len(stringlist)): item = QtGui.QStandardItem(stringlist[i]) item.setCheckable(True) check = QtCore.Qt

2022-01-24 15:42:03    分类:技术分享    python   pyqt   pyqt4   qlistview   qcheckbox

Checkbox selection in QListView

I developed a simple dialog with a checkbox, which allows the user to select one or several items from a list. Besides the standard OK and Cancel buttons, it adds Select All and Unselect All buttons, allowing the user to check/uncheck all items at once (this comes handy for large lists). import os, sys from PyQt4 import Qt, QtCore, QtGui class ChecklistDialog(QtGui.QDialog): def __init__(self, name, stringlist=None, checked=False, icon=None, parent=None): super(ChecklistDialog, self).__init__(parent) self.name = name self.icon = icon self.model = QtGui.QStandardItemModel() self.listView =

2022-01-23 15:55:30    分类:问答    python   pyqt   pyqt4   qlistview   qcheckbox

在 virtualenv 中安装 PyQt4(Installing PyQt4 in a virtualenv)

问题 我正在尝试在 virtualenv 中安装 PyQT4。 我正在运行 Python3.2.1。 这是我到目前为止所做的: sudo apt-get install qt4-dev-tools 这很好用 我下载了 PyQt-x11-gpl-4.9.5 和 sip-4.14 在 virtualenv 里面我安装了 sip。 没有出现错误。 当我尝试打电话时: python3.2 configure.py 对于我的 PyQt,它让我接受许可证,做一堆没有错误的东西然后说: Generating the C++ source for the QtCore module... sip: Usage: sip [-h] [-V] [-a file] [-b file] [-c dir] [-d file] [-e] [-g] [-I dir] [-j #] [-k] [-m file] [-o] [-p module] [-P] [-r] [-s suffix] [-t tag] [-T] [-w] [-x feature] [-X id:file] [-z file] [file] Error: Unable to create the C++ code. 据我所知,我的问题来自于我运行了错误版本的 Qt。 我不太确定如何检查我的 Qt 版本,但我安装了 QtAssistant

2022-01-23 12:49:06    分类:技术分享    python   ubuntu   installation   pyqt4   python-3.2

PyQt 自动空格 qlineedit 字符(PyQt auto-space qlineedit characters)

问题 我有一个用户输入验证码的 qlineedit。 我希望能够每隔 5 个字符自动间隔这些数字,就像在激活自动添加破折号的窗口时一样。 例如 12345 67890 12345 67890 回答1 如果位数是固定的,最好的选择是使用 setInputMask(),在你的情况下: if __name__ == '__main__': app = QApplication(sys.argv) le = QLineEdit() le.setInputMask(("ddddd "*4)[:-1]) le.show() sys.exit(app.exec_()) 在行数可变的情况下,最好使用 textChanged 信号并在必要时添加它,此外,我们可以编写一个 QValidator,如下所示。 class LineEdit(QLineEdit): def __init__(self, *args, **kwargs): QLineEdit.__init__(self, *args, **kwargs) self.textChanged.connect(self.onTextChanged) self.setValidator(QRegExpValidator(QRegExp("(\\d+)"))) def onTextChanged(self, text): if len(text) %

2022-01-23 11:45:13    分类:技术分享    python   pyqt   pyqt4   qlineedit

当 parentWidget 关闭时,浮动 QDockWidget 不会关闭(floating QDockWidget does not close when parentWidget closes)

问题 我有两个打开的 MainWindows:MainWindowWithButton 和 MainWindowWithDock。 后者包含一个 QDockWidget。 IS 行为:当用户使 DockWidget 可浮动并关闭 MainWindowWithDock 时,dockWidget 不会关闭。 应该行为:当用户使 DockWidget 可浮动并关闭 MainWindowWithDock 时,dockWidget 也会关闭。 笔记: “IS 行为”的原因:浮动 DockWidget 似乎独立于其父级我无法收听 onClose / reject (因为它会在我的特定情况下提供虚假信息。 MainWindow 不会发出有关其行为的明确信号重要的是,DockWidget 在 MainWindow 关闭之前关闭。 否则焦点会出乎意料 示例代码: from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui from PyQt4.QtGui import QApplication, QDialog, QMainWindow import sys try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return

2022-01-23 11:42:35    分类:技术分享    python   python-2.7   pyqt   pyqt4

Installing PyQt4 in a virtualenv

I am trying to install PyQT4 in a virtualenv. I am running Python3.2.1. Here's what I've done so far: sudo apt-get install qt4-dev-tools this worked fine I downloaded PyQt-x11-gpl-4.9.5 and sip-4.14 Inside the virtualenv I installed sip. No errors came up. When I try to call: python3.2 configure.py for my PyQt it lets me accept the licence, does a bunch of stuff without errors then says: Generating the C++ source for the QtCore module... sip: Usage: sip [-h] [-V] [-a file] [-b file] [-c dir] [-d file] [-e] [-g] [-I dir] [-j #] [-k] [-m file] [-o] [-p module] [-P] [-r] [-s suffix] [-t tag] [-T]

2022-01-23 09:27:32    分类:问答    python   ubuntu   installation   pyqt4   python-3.2