这可能是一个简单的问题,但我试图在我的应用程序中为特定的QLabel赋予颜色,但它不起作用.
我尝试的代码如下:
nom_plan_label = QtGui.QLabel()
nom_plan_label.setText(nom_plan_vignette)
nom_plan_label.setStyleSheet("QLabel#nom_plan_label {color: yellow}")
Run Code Online (Sandbox Code Playgroud)
任何提示都将不胜感激
我试图让django_auth_module工作,但我不认为我设法正确安装它.
我下载了包并运行了setup.py install.然后在我的settings.py文件中,我尝试导入模块ldap,它给了我以下错误:
ImportError: no module named ldap
Run Code Online (Sandbox Code Playgroud)
我正在使用CentOS 6服务器.
也许它与我应该安装模块的位置有关?该文件夹位于我的站点文件夹正上方的目录中,但可能是错误的...
解决:好的,我只需要安装模块python-ldap ...问题解决了!
我想将ActiveDirectory数据库的用户导入Django.为此,我正在尝试使用django_auth_ldap模块.
这是我已经尝试过的:
在我的settings.py中:
AUTH_LDAP_SERVER_URI = "ldap://example.fr"
AUTH_LDAP_BIND_DN = 'cn=a_user,dc=example,dc=fr'
AUTH_LDAP_BIND_PASSWORD=''
AUTH_LDAP_USER_SEARCH = LDAPSearch('ou=users,dc=example,dc=fr', ldap.SCOPE_SUBTREE, '(uid=%(user)s)')
AUTH_LDAP_GROUP_SEARCH = LDAPSearch('ou=groups,dc=example,dc=fr', ldap.SCOPE_SUBTREE, '(objectClass=groupOfNames)')
AUTH_LDAP_GROUP_TYPE = ActiveDirectoryGroupType()
#Populate the Django user from the LDAP directory
AUTH_LDAP_USER_ATTR_MAP = {
'first_name': 'sAMAccountName',
'last_name': 'displayName',
'email': 'mail'
}
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
Run Code Online (Sandbox Code Playgroud)
然后我打电话python manage.py syncdb
没有结果.没有警告,没有错误,auth_user表中没有更新任何内容.有什么明显的东西我忘记了吗?
我正在尝试为Python 2.6安装pywin32.我安装了python,但它不在常规c:驱动器中,而是在d:驱动器上.pywin32安装程序找不到它,我无法给它自定义路径.
我检查过,python文件夹是路径.这个问题有解决方法吗?
我有一个 QTableView 以网格的形式显示数据库的一些信息。其中一个字段是图像的路径,我想在我的表格中显示这些图像。
我与代表一起尝试了一些东西,但我对他们不太满意,而且我什么也做不了。我也尝试了一些角色:
if index.column() == 4:
if role == QtCore.Qt.DecorationRole:
label = QtGui.QLabel()
path = "path/to/my/picture.jpg"
image = QtGui.QImage(str(path))
pixmap = QtGui.QPixmap.fromImage(image)
label.setPixmap(pixmap)
return label
Run Code Online (Sandbox Code Playgroud)
这段代码的灵感来自我在另一个论坛上发现的应该可以工作的东西。但是它对我没有任何作用,只会减慢我的代码的执行速度。
知道为什么它不起作用吗?如果你有一个代表的例子,我也会很感激!
感谢您的关注
已解决:我让它与自定义委托一起工作。如果有人感兴趣,这是我的代码:
class ImageDelegate(QtGui.QStyledItemDelegate):
def __init__(self, parent):
QtGui.QStyledItemDelegate.__init__(self, parent)
def paint(self, painter, option, index):
painter.fillRect(option.rect, QtGui.QColor(191,222,185))
# path = "path\to\my\image.jpg"
path = "araignee_de_mer.jpg"
image = QtGui.QImage(str(path))
pixmap = QtGui.QPixmap.fromImage(image)
pixmap.scaled(50, 40, QtCore.Qt.KeepAspectRatio)
painter.drawPixmap(option.rect, pixmap)
Run Code Online (Sandbox Code Playgroud) 我有一个相当简单的问题,但我似乎无法找到一个简单的解决方案.我想在我的Django模板中迭代一个数组但跳过第一个值.
假设我有一个这样的数组,我通过视图传递给我的模板:
array = ['1', '2', '3', '4', '5']
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我做:
{%表示数组%} {{a}} {%endfor%}
我怎么能只打印'2''3''4''5',没有第一个值?
我有一个自定义表单,我想传递一个参数.按照这个例子,我想出了以下代码:
class EpisodeCreateForm(forms.Form):
def __init__(self, *args, **kwargs):
my_arg = kwargs.pop('my_arg')
super(EpisodeCreateForm, self).__init__(*args, **kwargs)
my_field = forms.CharField(initial=my_arg)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
Exception Value: name 'my_arg' is not defined
Run Code Online (Sandbox Code Playgroud)
如何让它识别表单代码中的参数?
我正在使用自定义委托在QTableView中显示一列comboBoxes。
除了默认选择问题(在此处输入链接描述)之外,我在对QTableView的数据重新排序时(按列或通过应用过滤器)还有一个问题。combox保持不显示网格时的位置。
有什么方法可以强制重绘代表?我复制了paint方法的代码(没有索引),但这只会导致程序崩溃。
让我知道我是否还不够清楚。
这是我的自定义委托的代码:
class ComboBoxDelegate(QtGui.QItemDelegate):
def __init__(self, parent, itemslist):
QtGui.QItemDelegate.__init__(self, parent)
self.itemslist = itemslist
self.parent = parent
def paint(self, painter, option, index):
# Get Item Data
value = index.data(QtCore.Qt.DisplayRole).toInt()[0]
# value = self.itemslist[index.data(QtCore.Qt.DisplayRole).toInt()[0]]
# fill style options with item data
style = QtGui.QApplication.style()
opt = QtGui.QStyleOptionComboBox()
opt.currentText = str(self.itemslist[value])
opt.rect = option.rect
# draw item data as ComboBox
style.drawComplexControl(QtGui.QStyle.CC_ComboBox, opt, painter)
self.parent.openPersistentEditor(index)
def createEditor(self, parent, option, index):
##get the "check" value of the row
# for …
Run Code Online (Sandbox Code Playgroud) 当我尝试使用此指令在Django中转储模型的数据时:
python manage.py dumpdata app> temp_data.json
Run Code Online (Sandbox Code Playgroud)
它给出以下错误:
Error: One or more models did not validate:
asset.authpermission: "codename": CharField cannot have a "max_length" greater than 255 when using "unique=True".
asset.djangocontenttype: "app_label": CharField cannot have a "max_length" greater than 255 when using "unique=True".
asset.djangocontenttype: "model": CharField cannot have a "max_length" greater than 255 when using "unique=True".
Run Code Online (Sandbox Code Playgroud)
问题是这些表是由django自动生成的.另外,我刚刚检查了数据库(mysql),字段是varchar(100).
怎么了 ?
基本上我想在 Django 中创建一个变量持久化,但我不知道如何。
更准确地说,我希望用户在登录站点时选择一个特定的项目(例如通过 ChoiceField)。然后,只要他不选择其他项目,站点就“知道”他选择了哪个项目,以便他可以执行与该项目相关的一些操作。
这怎么可能?会话变量是要走的路吗?或者也许是缓存系统?一些提示将不胜感激:)
如果我不够清楚,请告诉我
django global-variables django-cache persistent-data django-sessions
看起来像这样有点复杂,但我想要的应该很简单.我有一个Python列表.
让我们说 list = [[A, B, C], [D, B], [E], [X, Y, Z]]
我想按照我尝试的某个顺序迭代每个内部列表的元素
for i in range(0, 10):
for item in list[i]:
<do action on item>
Run Code Online (Sandbox Code Playgroud)
但我从Python指向的语法错误list[i]
,似乎不太喜欢它.
编辑:我想一次遍历一个内部列表例如:
for i in range(0, 1):
print i
for item in list[i] #or something that works..
print item
Run Code Online (Sandbox Code Playgroud)
会打印
0
A
B
C
1
D
B
Run Code Online (Sandbox Code Playgroud)
知道为什么这会阻塞吗?
回溯只是说那里有语法错误......
重新编辑:我通过使用其他数据结构解决了我的问题.这有点过于复杂.很抱歉浪费你的时间,但感谢你的提示!
我想将我的UI的一些元素放在滚动区域中,因为它们可能有很多.我尝试了以下代码,但随着我添加了更多元素,该区域不断增长.
在第一部分中,我设置了滚动区域,小部件和布局.我将布局应用于窗口小部件,然后将窗口小部件设置为scrollarea.然后我在外部函数中填写我的布局.所有下面的按钮允许填充布局中的更多元素.
scrollRow = QtGui.QScrollArea()
scrollRow.setMaximumSize(600, 400)
self.rowAssetWidget = QtGui.QWidget()
self.rowAssetLayout = QtGui.QGridLayout()
self.rowAssetLayout.setSpacing(20)
self.rowAssetWidget.setLayout(self.rowAssetLayout)
scrollRow.setWidget(self.rowAssetWidget)
#self.mainLayout.addLayout(self.rowAssetLayout, 2, 0)
self.mainLayout.addWidget(self.rowAssetWidget, 2, 0)
self.assetRow()
self.addAssetRowBtn = QtGui.QPushButton("+")
self.addAssetRowBtn.setFixedSize(20, 20)
self.mainLayout.addWidget(self.addAssetRowBtn, 3, 0)
self.connect(self.addAssetRowBtn, QtCore.SIGNAL("clicked()"), self.addAssetRow)
Run Code Online (Sandbox Code Playgroud)
我的元素看起来很好,但它不滚动.任何的想法 ?
我有一个由2个ChoiceField和一个CharField组成的表单.当选择第一个项目时,第二个ChoiceField通过ajax填充.
填充它的模板如下:
{% for a in assets %}
<option value="{{ a.asset_id }}">{{ a.asset_name }}_{{ a.asset_description }}</option>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
当我尝试提交表单时,我收到以下错误:
Select a valid choice. 20 is not one of the available choices.
Run Code Online (Sandbox Code Playgroud)
指向第二个ChoiceField,20对应于所选项目的{{a.asset_id}}.
我在其他论坛上看到了这个错误,但它几乎总是由于multipleChoiceField,这不是我关注的问题.
我究竟做错了什么 ?
django ×7
pyqt ×4
python ×4
django-forms ×2
ldap ×2
qtableview ×2
arrays ×1
choicefield ×1
django-cache ×1
dump ×1
image ×1
jquery ×1
layout ×1
list ×1
loops ×1
pyqt4 ×1
pywin32 ×1
qlabel ×1
qscrollarea ×1